Estava aprendendo a gerar relatorios com o iReport e JasperReport, ate ai tudo bem, então resolvi fazer um teste, criei uma classe main só com um JFrame e um botão que chama outra classe responsavel por gera e mostrar o relatorio. Funcionou, o problema é que quando eu fecho o relatorio ele tambem fecha a classe main e finaliza a aplicação. Alguem tem ideia do que eu estou fazendo errado !?!? ou o JasperViewer funciona assim mesmo!?!?!?
precisaria do codigo onde vc esta chamando o jasper… mas acho q onde vc esta chamando mesmo (dentro do geraRelatorio() que esta na outra classe sua), deve estar desta forma:
JasperViewer.viewReport(jpt, true);
esperimente mudar para
JasperViewer.viewReport(jpt, false);
isso fica onde vc faz mesmo a chamada para apresentar o relatorio… onde apresenta ele mesmo…
Ai Carlos, valeu pela ajuda, realmente funcionou, ao fecha o viewer a aplicação não facha, mas meu relatorio esta saindo em branco, acho que tem a ver com o parameter, mas eu não sei como usa-lo, sem querer abusar mas se vc puder me dar mais esse help eu ficaria grato. Abraços.
Tipo, não tem o que fazer… eh esse o metodo mesmo q eu te passei q vc deve utilizar, tem outros pra determinar se ele fechara ou nao o programa… mas nenhum com String como parametro… tipo vc sabe q o valor padrao de um Frame eh ao fechar, Exit on close. o o jasperview puxa isso do frame, por isso temos q definir.
Sobre a ajuda, posso sim… seguinte
No exemplo q eu passei ali
eu errei =X
tipo eu ali no exemplo ao inves de pasar um JRResultSetDataSource estou passando um Connection…
soh copiei o seu codigo.
no seu caso vc poderia manter o codigo inicial…
Implementei este tipo de select, pois estou utilizando uma tabela que é
gerada a partir da quantidade de dados que possui no banco, por isso preciso jogá-lo dentro do IReport custe o que custar.
E está resolvido mesmo, porque eu já resolvi também.
O IReport não aceita $ (cifrões) nos relatórios, não importa se é no título ou nas linhas.
Bastava eu retirar o cifrão do título da coluna [b]preço]/b] e estaria resolvido.
Aí Pessoal, eu tbm estou tendo um probleminha nesse contexto, o meu erro gerado é:
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:613)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1685)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1341)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:77)
at pkgClsUtilitario.clsJasperReport.<init>(clsJasperReport.java:33)
at pkgClsUtilitario.clsJasperReport.main(clsJasperReport.java:62)