[RESOLVIDO]Ireport ! Passa apenas o id pelo Eclpse

4 respostas
G

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.

package br.com.SIP.Geral.Util;

import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioTeste {

	static String jasperLocal = "Relatorio/relCarro.jasper";
	static Map parameters = new HashMap();

	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws JRException,
			ClassNotFoundException {

		parameters.put("idParaCarro", "1");
		parameters.put("teste2", "1");
		parameters.put("teste", "1");

		chamaRelatorio();

	}

	public static void chamaRelatorio() throws JRException,
			ClassNotFoundException {

		Relatorio r = new Relatorio();

		Long idComprova = 1L;// valor apenas para fase e teste.

		// TODO Auto-generated method stub
		System.out.println("Gerando relatório...");

		JasperReport pathjrxml = JasperCompileManager
				.compileReport("Relatorio/relCarro.jrxml");

		JasperPrint print = JasperFillManager.fillReport(pathjrxml, parameters);
		// exportacao do relatorio para outro formato, no caso PDF
		JasperExportManager.exportReportToPdfFile(print,
				"Relatorio/relCarro.pdf");

		JasperViewer jrv = new JasperViewer(print);
		jrv.setVisible(true);

		System.out.println("Relatório gerado.");

	}

}

4 Respostas

G

Bom… vi em alguns exemplos que passa a Conexao… so que da erro…

É preciso passar a conexao?

package br.com.SIP.Geral.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.swing.JRViewer;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioTeste {

	static String jasperLocal = "Relatorio/relCarro.jasper";
	static Map parameters = new HashMap();

	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws JRException,
			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 */
	public static Connection getConexao()  {
		Connection con = null;
		String driver = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://localhost/sip";
		String login = "root";
		String senha = "root";
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, login, senha);
		} catch (ClassNotFoundException e) {
			 e.getMessage() ;
		} catch (SQLException e) {
			 e.getMessage() ;
		}
		return con;
	}

	public static void chamaRelatorio() throws JRException,
			ClassNotFoundException, SQLException {

		// TODO Auto-generated method stub
		System.out.println("Gerando relatório...");


		Connection con = getConexao();
		Statement stm = con.createStatement();  
		ResultSet rs = stm.executeQuery("SELECT nome FROM carro");  
		
		while (rs.next()) {  
		    String coluna1 = rs.getString("nome");  
		   System.out.println(coluna1 + " teste 1");
		}  
		
		JasperReport pathjrxml = JasperCompileManager
				.compileReport("Relatorio/relCarro.jrxml");
		JasperPrint print = JasperFillManager.fillReport(pathjrxml, parameters, con);
		// exportacao do relatorio para outro formato, no caso PDF
		 JasperExportManager.exportReportToPdfFile(print,
				"Relatorio/relCarro.pdf");

		JasperViewer jrv = new JasperViewer(print);
		jrv.setVisible(true);
 
		System.out.println("Relatório gerado.");

	}

}

erro

Gerando relatório...
Fusca teste 1
log4j: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

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 :smiley:

G

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 :smiley:

package br.com.SIP.Geral.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class Relatorio {

	
	Map parametros = new HashMap();
	String nomeRelatorio;
	
	public Relatorio( Map map, String nomeRelatorio) {
		super();
		
		parametros = map;
		this.nomeRelatorio = nomeRelatorio;
		
		// TODO Auto-generated constructor stub
	}

	public Connection getConexao() {
		Connection con = null;
		String driver = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://localhost/sip";
		String login = "root";
		String senha = "root";
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, login, senha);
		} catch (ClassNotFoundException e) {
			e.getMessage();
		} catch (SQLException e) {
			e.getMessage();
		}
		return con;
	}

	public void chamaRelatorio() throws JRException,
			ClassNotFoundException, SQLException {

		// TODO Auto-generated method stub
		System.out.println("Gerando relatório...");

		//jrxml é para compilar o jasper...(nao é necessario fazer toda vez)
		//JasperReport pathjrxml = JasperCompileManager.compileReport(nomeRelatorio+".jrxml");
				JasperPrint print = JasperFillManager.fillReport( "Relatorio/"+nomeRelatorio+".jasper", parametros, getConexao());
		// exportacao do relatorio para outro formato, no caso PDF
		JasperExportManager.exportReportToPdfFile(print,
				"Relatorio/"+nomeRelatorio+".pdf");

		JasperViewer jrv = new JasperViewer(print);
		jrv.setVisible(true);

		System.out.println("Relatório gerado.");

	}
}
Criado 27 de fevereiro de 2014
Ultima resposta 3 de mar. de 2014
Respostas 4
Participantes 2