[RESOLVIDO]Ireport ! Passa apenas o id pelo Eclpse
4 respostas
G
Guguuu
Tenho relatório que quando compilo pelo Ireport, passando um “id” ele faz todo o serviço 100% … mais qndo boto para compilar pelo eclipse gerar o relatório ele sai em branco. Gostaria de um tutorial que me ajudasse ou trecho de código que fizesse o serviço.
classe para testar.
packagebr.com.SIP.Geral.Util;importjava.util.HashMap;importjava.util.Map;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperCompileManager;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperReport;importnet.sf.jasperreports.view.JasperViewer;publicclassRelatorioTeste{staticStringjasperLocal="Relatorio/relCarro.jasper";staticMapparameters=newHashMap();@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args)throwsJRException,ClassNotFoundException{parameters.put("idParaCarro","1");parameters.put("teste2","1");parameters.put("teste","1");chamaRelatorio();}publicstaticvoidchamaRelatorio()throwsJRException,ClassNotFoundException{Relatorior=newRelatorio();LongidComprova=1L;// valor apenas para fase e teste.// TODO Auto-generated method stubSystem.out.println("Gerando relatório...");JasperReportpathjrxml=JasperCompileManager.compileReport("Relatorio/relCarro.jrxml");JasperPrintprint=JasperFillManager.fillReport(pathjrxml,parameters);// exportacao do relatorio para outro formato, no caso PDFJasperExportManager.exportReportToPdfFile(print,"Relatorio/relCarro.pdf");JasperViewerjrv=newJasperViewer(print);jrv.setVisible(true);System.out.println("Relatório gerado.");}}
Bom… vi em alguns exemplos que passa a Conexao… so que da erro…
É preciso passar a conexao?
packagebr.com.SIP.Geral.Util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.HashMap;importjava.util.Map;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperCompileManager;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperReport;importnet.sf.jasperreports.swing.JRViewer;importnet.sf.jasperreports.view.JasperViewer;publicclassRelatorioTeste{staticStringjasperLocal="Relatorio/relCarro.jasper";staticMapparameters=newHashMap();@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args)throwsJRException,ClassNotFoundException,SQLException{parameters.put("idParaCarro","1");parameters.put("teste2","1");parameters.put("teste","1");chamaRelatorio();}/* Realiza conexão com o banco de dados, retornando o objeto Connection */publicstaticConnectiongetConexao(){Connectioncon=null;Stringdriver="com.mysql.jdbc.Driver";Stringurl="jdbc:mysql://localhost/sip";Stringlogin="root";Stringsenha="root";try{Class.forName(driver);con=DriverManager.getConnection(url,login,senha);}catch(ClassNotFoundExceptione){e.getMessage();}catch(SQLExceptione){e.getMessage();}returncon;}publicstaticvoidchamaRelatorio()throwsJRException,ClassNotFoundException,SQLException{// TODO Auto-generated method stubSystem.out.println("Gerando relatório...");Connectioncon=getConexao();Statementstm=con.createStatement();ResultSetrs=stm.executeQuery("SELECT nome FROM carro");while(rs.next()){Stringcoluna1=rs.getString("nome");System.out.println(coluna1+" teste 1");}JasperReportpathjrxml=JasperCompileManager.compileReport("Relatorio/relCarro.jrxml");JasperPrintprint=JasperFillManager.fillReport(pathjrxml,parameters,con);// exportacao do relatorio para outro formato, no caso PDFJasperExportManager.exportReportToPdfFile(print,"Relatorio/relCarro.pdf");JasperViewerjrv=newJasperViewer(print);jrv.setVisible(true);System.out.println("Relatório gerado.");}}
erro
Gerando relatório...Fusca teste 1log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).log4j:WARN Please initialize the log4j system properly.Exception in thread "main" java.lang.NullPointerException at net.sf.jasperreports.components.table.util.TableUtil.isSortableAndFilterable(TableUtil.java:344) at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.addHeaderToolbarElement(TableReport.java:481) at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:437) at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:255) at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:231) at net.sf.jasperreports.components.table.StandardColumn.visitColumn(StandardColumn.java:73) at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visit(TableReport.java:310) at net.sf.jasperreports.components.table.fill.TableReport.createColumnHeader(TableReport.java:650) at net.sf.jasperreports.components.table.fill.TableReport.<init>(TableReport.java:157) at net.sf.jasperreports.components.table.fill.FillTable.createFillTableSubreport(FillTable.java:284) at net.sf.jasperreports.components.table.fill.FillTable.createFillSubreport(FillTable.java:260) at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:105) at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:88) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:472) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2037) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:771) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:281) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:144) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:804) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:849) at br.com.SIP.Geral.Util.RelatorioTeste.chamaRelatorio(RelatorioTeste.java:73) at br.com.SIP.Geral.Util.RelatorioTeste.main(RelatorioTeste.java:33)
alguemmmmmm por favor >:D
Planc
Posta XML do seu relatório ai, pelo erro que ocorreu o problema está no seu relatório.
G
Guguuu
Tenho outros relatórios e resolvi chama-los de teste e deu certo… ae refiz o relatório de carros… vlw agora consigo finalizar o sistema
G
Guguuu
Bom…gostaria de fazer sem passar a conexão, porém acredito que seja obrigatório… mais vai o código customizado pro povo que tiver duvida… vlw
packagebr.com.SIP.Geral.Util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.HashMap;importjava.util.Map;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.view.JasperViewer;publicclassRelatorio{Mapparametros=newHashMap();StringnomeRelatorio;publicRelatorio(Mapmap,StringnomeRelatorio){super();parametros=map;this.nomeRelatorio=nomeRelatorio;// TODO Auto-generated constructor stub}publicConnectiongetConexao(){Connectioncon=null;Stringdriver="com.mysql.jdbc.Driver";Stringurl="jdbc:mysql://localhost/sip";Stringlogin="root";Stringsenha="root";try{Class.forName(driver);con=DriverManager.getConnection(url,login,senha);}catch(ClassNotFoundExceptione){e.getMessage();}catch(SQLExceptione){e.getMessage();}returncon;}publicvoidchamaRelatorio()throwsJRException,ClassNotFoundException,SQLException{// TODO Auto-generated method stubSystem.out.println("Gerando relatório...");//jrxml é para compilar o jasper...(nao é necessario fazer toda vez)//JasperReport pathjrxml = JasperCompileManager.compileReport(nomeRelatorio+".jrxml");JasperPrintprint=JasperFillManager.fillReport("Relatorio/"+nomeRelatorio+".jasper",parametros,getConexao());// exportacao do relatorio para outro formato, no caso PDFJasperExportManager.exportReportToPdfFile(print,"Relatorio/"+nomeRelatorio+".pdf");JasperViewerjrv=newJasperViewer(print);jrv.setVisible(true);System.out.println("Relatório gerado.");}}