Boa tarde,
precisava de repetir a impressão de um report N vezes com a mesma informação, isto é, imprimir 1 de N, 2 de N, ? N de N etiquetas com os mesmos dados.
Alguém sabe como posso fazê-lo no ireport?
Obrigada
Boa tarde,
precisava de repetir a impressão de um report N vezes com a mesma informação, isto é, imprimir 1 de N, 2 de N, ? N de N etiquetas com os mesmos dados.
Alguém sabe como posso fazê-lo no ireport?
Obrigada
Tenho também um outro problema… ao ir buscar um campo data através de um select aparece-me, na criação do report oracle.sql.TIMESTAMPLTZ@(…).
Alguém sabe como ultrapassar este problema?
Obrigada…
Boa tarde,precisava de repetir a impressão de um report N vezes com a mesma informação, isto é, imprimir 1 de N, 2 de N, ? N de N etiquetas com os mesmos dados.
Alguém sabe como posso fazê-lo no ireport?
Obrigada
[color=darkblue]
Existem métodos para você imprimir sem visualizar, mas todos chamam a impressora padrão, não seria melhor gerar um .pdf e fazer com que o usuário faça a opção ?
Existem dois métodos o printPages e o printPage
boolean net.sf.jasperreports.engine.JasperManager.printPages(JasperPrint arg0, int arg1, int arg2, boolean arg3)
O printPage imprime só a página especificada enquanto o printPages imprime todos as páginas , ambos vão para saída da impressora padrão.
[/color]
public void imprimirEtiqueta(Conexao conn, String data, String nome, File fileName ) {
try {
Map parametros = new HashMap();
parametros.put("DATA", data);
parametros.put("NOME", nome);
if (parametros == null)
thorw new exception("Página em branco");
JasperPrint jPrint = JasperManager.fillReport(jReport_Etiqueta, parametros, conn);
int finalPag = jPrint.getPages().size() - 1;
System.out.println("Tamanho da página " +finalPag );
JasperManager.printPages(jPrint, 0 , finalPag ,true);
parametros = null;
jPrint = null;
} catch (Exception e) {
e.printStackTrace();
}
System.gc();
}
}
Tenho também um outro problema… ao ir buscar um campo data através de um select aparece-me, na criação do report oracle.sql.TIMESTAMPLTZ@(…).Alguém sabe como ultrapassar este problema?
Obrigada…
[color=darkblue] Poderia enviar o erro completo ? mas pelo que sei é um erro de formatação de data que você está tentando enviar para base[/color]
Tenho também um outro problema… ao ir buscar um campo data através de um select aparece-me, na criação do report oracle.sql.TIMESTAMPLTZ@(…).Alguém sabe como ultrapassar este problema?
Obrigada…
[color=darkblue] Poderia enviar o erro completo ? mas pelo que sei é um erro de formatação de data que você está tentando enviar para base[/color]
Boa tarde…
Não aperece nenhum erro na criação do relatório… o único problema é que no campo onde deveria aparecer a data aparece: “oracle.sql.TIMESTAMPLTZ@9f5b19”…
Boa tarde,precisava de repetir a impressão de um report N vezes com a mesma informação, isto é, imprimir 1 de N, 2 de N, ? N de N etiquetas com os mesmos dados.
Alguém sabe como posso fazê-lo no ireport?
Obrigada
[color=darkblue]
Existem métodos para você imprimir sem visualizar, mas todos chamam a impressora padrão, não seria melhor gerar um .pdf e fazer com que o usuário faça a opção ?Existem dois métodos o printPages e o printPage
boolean net.sf.jasperreports.engine.JasperManager.printPages(JasperPrint arg0, int arg1, int arg2, boolean arg3)
O printPage imprime só a página especificada enquanto o printPages imprime todos as páginas , ambos vão para saída da impressora padrão.
[/color]public void imprimirEtiqueta(Conexao conn, String data, String nome, File fileName ) { try { Map parametros = new HashMap(); parametros.put("DATA", data); parametros.put("NOME", nome); if (parametros == null) thorw new exception("Página em branco"); JasperPrint jPrint = JasperManager.fillReport(jReport_Etiqueta, parametros, conn); int finalPag = jPrint.getPages().size() - 1; System.out.println("Tamanho da página " +finalPag ); JasperManager.printPages(jPrint, 0 , finalPag ,true); parametros = null; jPrint = null; } catch (Exception e) { e.printStackTrace(); } System.gc(); } }
Boa tarde,
Antes de mais obrigado pela ajuda.
Vou tentar explicar um pouco melhor o que precisava de fazer... tenho um query que vai buscar à base de dados a quantidade pedida de uma determinada encomenda. Vamos supor que essa quantidade é de 5 unidades. O que preciso é que esse report que desenhei seja criado 5 vezes para que possa colocar uma etiqueta em cada unidade com a informação "unidade 1 de 5", "unidade 2 de 5",..., "unidade 5 de 5" (para numerar uso um contador).
Deverei usar os comandos que citou acima? Peço desculpa mas é a primeira vez que trabalho com ireport.... :(
Obrigada.
Tenho também um outro problema… ao ir buscar um campo data através de um select aparece-me, na criação do report oracle.sql.TIMESTAMPLTZ@(…).Alguém sabe como ultrapassar este problema?
Obrigada…
[color=darkblue] Poderia enviar o erro completo ? mas pelo que sei é um erro de formatação de data que você está tentando enviar para base[/color]
Boa tarde…
Não aperece nenhum erro na criação do relatório… o único problema é que no campo onde deveria aparecer a data aparece: “oracle.sql.TIMESTAMPLTZ@9f5b19”…
[color=darkblue]No caso é a formatação, você salvou na base como Timestamp e está tentando postar no relatório como Date, você pode usar algo do tipo para converter, ou simplemente fazer o mais fácil e enviar como String, algo do tipo String.valueOf(timestamp): [/color]
//Timestamp para Date
Timestamp timestamp= new Timestamp(System.currentTimeMillis());
Date data = (Date) timestamp;
//String para Date
SimpleDateFormat _format = new SimpleDateFormat("dd/MM/yyyy");
dateBegin = _format.parse(_servletRequest.getParameter("historyForm.datetime_begin"));
String _strDateBegin = new SimpleDateFormat("MM/dd/yyyy").format(dateBegin);
//usando Date:
Date dataAtual = new Date();
Timestamp t = new Timestamp(dataAtual.getTime());
//usando Calendar:
Calendar c = Calendar.getInstance(new Locale("pt","BR"));
c.set(2006, 5-1, 19); // assinatura do metodo: set(ano, mes-1, dia);
Timestamp t = new Timestamp(c.getTimeInMillis());
Tenho também um outro problema... ao ir buscar um campo data através de um select aparece-me, na criação do report oracle.sql.TIMESTAMPLTZ@(...).Alguém sabe como ultrapassar este problema?
Obrigada...
[color=darkblue] Poderia enviar o erro completo ? mas pelo que sei é um erro de formatação de data que você está tentando enviar para base[/color]
Boa tarde...
Não aperece nenhum erro na criação do relatório... o único problema é que no campo onde deveria aparecer a data aparece: "oracle.sql.TIMESTAMPLTZ@9f5b19"...
[color=darkblue]No caso é a formatação, você salvou na base como Timestamp e está tentando postar no relatório como Date, você pode usar algo do tipo para converter, ou simplemente fazer o mais fácil e enviar como String, algo do tipo String.valueOf(timestamp): [/color]
//Timestamp para Date Timestamp timestamp= new Timestamp(System.currentTimeMillis()); Date data = (Date) timestamp; //String para Date SimpleDateFormat _format = new SimpleDateFormat("dd/MM/yyyy"); dateBegin = _format.parse(_servletRequest.getParameter("historyForm.datetime_begin")); String _strDateBegin = new SimpleDateFormat("MM/dd/yyyy").format(dateBegin); //usando Date: Date dataAtual = new Date(); Timestamp t = new Timestamp(dataAtual.getTime()); //usando Calendar: Calendar c = Calendar.getInstance(new Locale("pt","BR")); c.set(2006, 5-1, 19); // assinatura do metodo: set(ano, mes-1, dia); Timestamp t = new Timestamp(c.getTimeInMillis());
Tentei fazer duas das coisas que sugeriu... tentando:
String.valueOf($F{ORDER_HEADER_ORDER_DATE}) continua a contecer-me o mesmo... no campo aparece oracle.sql.TIMESTAMPLTZ@...
new Timestamp(System.currentTimeMillis($F{ORDER_HEADER_ORDER_DATE})) dá o erro:
"it.businesslogic.ireport.gui.logpane.ProblemItem@15bbb25 The method currentTimeMillis() in the type System is not applicable for the arguments (TIMESTAMPLTZ) Line 215, Column 55 /jasperReport/detail[1]/band[1]/textField[5]/textFieldExpression[1]" e
"it.businesslogic.ireport.gui.logpane.ProblemItem@128050e Timestamp cannot be resolved to a type Line 215, Column 55 /jasperReport/detail[1]/band[1]/textField[5]/textFieldExpression[1]"
não sei se sou eu que estou a cometer algum erro ou se o problema está em ser TIMESTAMPLTZ e não TIMESTAMP...
[color=darkblue] Não entendi esse ponto :[/color]
String.valueOf($F{ORDER_HEADER_ORDER_DATE})
[color=darkblue] Você está tentando alterar a variavel dentro do IReport ? nesse caso não irá funcionar, você tem que enviar um variável já formatada.
Nesse caso recomendo o seguinte, primeiro você tem que debugar o programa e ver como o valor está indo para o .jasper.
Depois que você fizer isso você tem que fazer a conversão para o valor correto, no caso teste o seguinte o mais simples primeiro
Envie um valor do tipo String (Formatado)
Receba em seu relatório um valor do tipo String
Depois você coloca a variável correta[/color]