[RESOLVIDO]Como abrir um arquivo .jasper por uma aplicacao java Desktop?
12 respostas
T
thiagofacanha
Olá pessoal.
Gostaria de saber como faço para abrir um relatorio do ireport por uma aplicação java Desktop.
Eu já uso ireports, porém utilizava o JasperServer para disponibilizar os relatórios… Me foi pedido agora uma aplicação .jar para executar os relatorios… alguem pode me passar um exemplo ?
Sim. Sao varias libs que devem estar no build patch
T
thiagofacanha
Opa cara deu certinho aqui...
criou relatorio sem pagina.. mas isso eu vou ver depois =D
segue o código.
/** To change this template, choose Tools | Templates* and open the template in the editor.*/importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.HashMap;importnet.sf.jasperreports.engine.*;importnet.sf.jasperreports.engine.util.JRLoader;importnet.sf.jasperreports.view.*;/**** @author Administrador*/publicclassChamaReport{privatestaticConnectiongetConnection()throwsClassNotFoundException,SQLException{Stringdriver="com.mysql.jdbc.Driver";Stringurl="jdbc:mysql://localhost:3306/schema";Stringuser="root";Stringpassword="senha";Class.forName(driver);Connectioncon=DriverManager.getConnection(url,user,password);returncon;}publicstaticvoidmain(String[]args)throwsJRException,Exception{newChamaReport().geraRelatorio();}privatevoidgeraRelatorio()throwsJRException,SQLException,ClassNotFoundException{HashMapmap=newHashMap();Stringarquivo="teste.jasper";JasperReportjasperReport=(JasperReport)JRLoader.loadObject(arquivo);JasperPrintjasperPrint=JasperFillManager.fillReport(jasperReport,map,ChamaReport.getConnection());JasperViewerjrviewer=newJasperViewer(jasperPrint,false);jrviewer.setVisible(true);}}
Foi necessário realmente importar todas aquelas libs
T
TheKill
Sim, as libs são fundamentais.
Att. Jonas
S
sammarino1975
Oi amigo, estou com o mesmo problema, o meu relatorio abre so dentro do NetBeans, quando rodo a aplicação compilada ele nao aparece. Sobre estas libs, em que pasta elas devem ficar? na pasta do C:\Arquivos de Programas\Java\jdk1.6_22\jre\lib\ext ou na pasta build do meu projeto? Obrigado
Só pra complementar, pra quem precisar: para salvar os relatórios em PDF, é necessário também importar o ‘iText-X.X.X’.
S
sammarino1975
Consegui resolver o problema, só estava faltando o operador + e tudo deu certo, 100% funcionando.
O programa não me pergunta qual pag eu quero imprimir, mas imprime o numero que eu colocar no campo Numero do Pag do formulário Escolhe Pagamento. Perfeito.
Segue o código. Talvez possa servir para outra pessoa.
con.conecta();con.executeSQL("select * from pagamentos where numero_pag= "+Formularios.EscolhePagamento.tf_pag.getText());HashMapparametro=newHashMap();parametro.put(“P_CODIGO”,Formularios.EscolhePagamento.tf_pag.getText());JRResultSetDataSourcejrRS=newJRResultSetDataSource(con.resultset);JasperReportreport=(JasperReport)JRLoader.loadObject(“C:/Pagamentos/relatorios/autcaixa.jasper”);JasperPrintrelatorio=JasperFillManager.fillReport(report,parametro,jrRS);JasperViewerviewer=newJasperViewer(relatorio,false);viewer.setTitle(“RelatóriodePagamentos”);viewer.setVisible(true);viewer.show();}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null, " Relatorio não localizado " + erro);
}
}