Olá pessoal! Estou mexendo com relatórios feito no iReport 4.0.1 num projeto JEE 6.
Mas descobri um certo bug no JasperViewer, e não estou conseguindo achar outra alternativa…
Inicialmente ele gera o relatório de boa, mas se eu peço pra gerar novamente, as vezes gera sem problemas e as vezes dá um certo erro.
O código que dá erro é na segunda linha:
JasperFillManager.fillReportToFile(path + ".jasper", path + ".jrprint", parametros, jrRS);
JasperViewer.viewReport(path + ".jrprint", false, false);
O erro é esse:
Olá Two_, não pude responder antes porque não sabia certo qual era a outra versão que eu tinha testado…
Mas então, eu testei também com a versão 3.7.6
Se alguém souber de uma versão que funcione já ajuda!
TheKill
Olá,
Eu uso a 3.7.2 e nunca tive este problema
andii.brunetta
TheKill, obrigada por sua dica… Vou dar uma olhada nessa versão também…
Só uma dúvida, talvez meio idiota de minha parte, eu preciso necessariamente usar o iReport da mesma versão do JasperReport?
Por exemplo eu usaria o iReport 4.0.1 e as bibliotecas do JasperReport no meu projeto na versão 3.7.2
TheKill
Sim. Concerteza
andii.brunetta
ok… vou fazer uns testes aqui, novamente obrigada
andii.brunetta
Aiai…
Estou com um problema ainda, baixei tanto o iReport como o JasperReport 3.7.2,
mas…
Quando coloquei as libs no projeto, ele não encontra os imports para as seguintes linhas:
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
JasperFillManager.fillReportToFile(path + ".jasper", path + ".jrprint", parametros, jrRS);
JasperViewer.viewReport(path + ".jrprint", false, false);
Por acaso é diferente?
TheKill
Não… estão corretos, colocou todas as libs ?
andii.brunetta
Coloquei todas as libs que estavam dentro de jasperreports->lib … um total de 48 libs… e nada!
andii.brunetta
a menos que baixei o jasperReports errado… :S
TheKill
re-compilou seu relatorio para a versao 3.7.2 ?
andii.brunetta
Sim. mas nem consegui executar o projeto ainda… não encontra os imports para aquelas linhas que mostrei acima
andii.brunetta
Consegui acertar as libs… mas continua o mesmo problema, se eu clico a primeira vez, funciona de boa, aparece o relatorio bonitinho… Mas se eu clico outras vezes seguida, as vezes funciona as vezes dá o mesmo erro… no primeiro teste que eu fiz, funcionou na primeira vez, a segunda vez que eu cliquei já deu o mesmo erro! :S
TheKill
muito estranho viu,
não é normal isso… tem algo de errado no seu relatorio
andii.brunetta
Também acredito que isso não seja normal… mas acho que se fosse problema no relatorio não geraria ele corretamente algumas vezes… eu acho que o problema está sendo na hora de montar o JasperViewer, pois se vc ver o erro, é algo relacionado ao awt.
TheKill
Isto ocorre com todos os relatórios???
ps.: eu uxo o iReport diretooooo, a mais de 1,5 anos… e nunca tive este problema, testes de mais de 15x encima dos mesmos relatórios para conferir resultados…
TheKill
vc usa Swing ?? utiliza AWT certo? pode ser algo vinculado ao AWT que estejas usando
andii.brunetta
Desculpa a demora, acabei de chegar na empresa…
Então, o projeto que eu estou fazendo é em Java ee 6.
O awt deve ser da janela que é criada do JasperViewer.
TheKill
Pode faze um teste usando Swing ?
Acho que o problema esteja vinculado ao AWT
andii.brunetta
TheKill, fiz o teste usando Swing como vc deu a idéia…
realmente com Swing funciona perfeitamente!
Vou ver a possibilidade de conseguir abrir um PDF numa outra aba do navegador.
Já que por esse teste dá pra ver o problema está na junção do Java EE com o awt.
edit: Na realidade quando clica repetidamente no botão do swing, ainda dá esse erro… mas a chance de dar o erro é bemmmm menor.
andii.brunetta
Olá Pessoal!
Levando em consideração que o meu projeto é web, acabei optando por abrir os relatorios em uma aba do navegador…
Assim acabou meu problema com o JasperViewer, deixo a solução caso alguém precisar: Peguei a solução daqui!
Usei como base o método:
Apenas mudei a nomenclatura dos atributos e o nome do método, e arrumei algumas coisas de acordo com o nosso projeto aqui, e tirei essa parte do ActionEvent (não foi necessário usar ele)…
No JSF ficou assim: