IReport relatorio funciona mas classe não

13 respostas
ziplove

CAROS COLEGAS, JA ESTOU ENTRANDO EM DESESPERO…contrui meu relatorio no ireport e estou utilizando o banco de dados mysql…o relatorio no ireport funciona perfeitamente…so que…não consegui ate agora criar uma classe que conseguisse visualizar em meu codigo…já li todos os tutoriais possíveis na net e cada um aponta para uma direção…inclusive o daqui do guj…tenho um arquivo produtos.jasper e um arquivo produtos.jrxml…UTILIZO O BD mysql…Conto com a colaboração deste conceituado grupo de javaneiros…DESDE JÁ…OBRIGADO

13 Respostas

furutani

Explica melhor o que vc não conseguiu fazer.

ziplove

Não consegui gerar um pdf e abrilo em uma classe na plataforma swing a partir dos arquivos .jasper e .jrxml…Inclusive li um tutorial seu …mas por ser iniciante não entendi direito furutani…Tipo assim…quero criar uma classe gerarRelatorio.java onde nela crio um relatorio.pdf e mostro na tela…Desde já obrigado…

furutani

Entendi. Tem vários tutoriais por ai que ensinam isso.
Você tentou fazer alguma coisa?

ziplove

Sim…olhe só:

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.JRResultSetDataSource;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

import net.sf.jasperreports.view.JasperViewer;

public class relatorioFinal {

private static final String url = "jdbc:mysql://127.0.0.1/mercado";
private static final String driver = "com.mysql.jdbc.Driver";
private static final String login = "root";
private static final String pwd = "";

public relatorioFinal() {
}

public void gerar( String layout ) throws JRException , SQLException, ClassNotFoundException {
	//gerando o jasper design
	JasperDesign desenho = JRXmlLoader.load( layout );

	//compila o relatório
	JasperReport relatorio = JasperCompileManager.compileReport( desenho );

	//estabelece conexão
	Class.forName( driver );
	Connection con = DriverManager.getConnection( url , login , pwd );
	Statement stm = con.createStatement();
	String query = "select * from produtos";
	ResultSet rs = stm.executeQuery( query );

	//implementação da interface JRDataSource para DataSource ResultSet
	JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );

	//executa o relatório
	Map parametros = new HashMap();
	parametros.put("nota", new Double(10));
	JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros,    jrRS );

	//exibe o resultado
	JasperViewer viewer = new JasperViewer( impressao , true );
	viewer.show();
}

public static void main(String[] args) {
	try {
		new relatorioFinal().gerar( "RelatorioMotoristas.jrxml" );
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}

ziplove

Só que da este erro:

java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.(FileInputStream.java:106)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)

at relatorioFinal.gerar(relatorioFinal.java:24)

at relatorioFinal.main(relatorioFinal.java:51)
NESTED BY :

java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.(FileInputStream.java:106)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)

at relatorioFinal.gerar(relatorioFinal.java:24)

at relatorioFinal.main(relatorioFinal.java:51)
NESTED BY :

net.sf.jasperreports.engine.JRException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:171)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)

at relatorioFinal.gerar(relatorioFinal.java:24)

at relatorioFinal.main(relatorioFinal.java:51)

Caused by: java.io.FileNotFoundException: RelatorioMotoristas.jrxml (O sistema não pode encontrar o arquivo especificado)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.(FileInputStream.java:106)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:166)

 3 more

EXECUTADO COM SUCESSO (tempo total: 1 segundo)
ziplove
//executa o relatório

Map parametros = new HashMap();

parametros.put(nota, new Double(10));

JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros, jrRS );

////////////////////////////////////////

O PARAMETROS.PUT O QUE SÃO??? VC TERIA ALGUM EXEMPLO TE CODIGO COLEGA???

ziplove

Olhem pessoal…a classe compila sem problemas…e o relatorio no ireport funciona … so que qdo mando executar minha classe da o erro acima…Abaixo meu codigo fonte…

furutani
<blockquote><div class="quote-author">ziplove:</div>//executa o relatório

Map parametros = new HashMap();

parametros.put(“nota”, new Double(10));

JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros, jrRS );

////////////////////////////////////////

O PARAMETROS.PUT O QUE SÃO??? VC TERIA ALGUM EXEMPLO TE CODIGO COLEGA???
São parametro que voce passa pro seu relatorio.
Veja aqui como trabalhar com eles

furutani

Ele não encontra o arquivo. Verifique se o caminho esta correto e tente usar o caminho absoluto.

ziplove

Desculpe por ser tão mirin assim na geração de relatorios mas depois de setar o caminho absoluto os erros diminuiram…agora tenho o seguinte…

Exception in thread main net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: D:\SWING\motoristasTeste\BibliotecaPessoal\src\BibliotecaPessoal.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)

at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)

at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:44)

at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:59)

Caused by: java.io.FileNotFoundException: D:\SWING\motoristasTeste\BibliotecaPessoal\src\BibliotecaPessoal.jasper

 4 more

Java Result: 1

Outra perguntinha no tutorial aqui do site no exemplo dão um :

import dori.jasper.engine.*;
import dori.jasper.view.JasperViewer;

onde encontro isto???Já procurei no /bin do ireport e não encontrei…

Desde já agradeço colega e me desculpe por alguma coisa…Obrigado

RenataFA

Veja:

Ele continua não encontrando um arquivo. Vc gerou o .jasper do seu .jrxml? Ele estão (ambos, o jasper e o jrxml) no caminho absoluto que vc passou?

Confere certinho o caminho que ele tá dando erro…

ziplove

Olá pessoal…começou a gerar pdf’s agradeço a ajuda de vcs. Agora surgiu outra situaçãozinha chata olhem so:

Map parametros = new HashMap();

<a href="//parametros.put">//parametros.put</a>(“titulo”, “Teste”);

<a href="//parametros.put">//parametros.put</a>(“ORDEM”,“ALFABETICA”);

JasperFillManager.fillReportToFile(“D:/SWING/motoristasTeste/BibliotecaPessoal/src/bibliotecapessoal/relatorioMotoristas2.jasper”,parametros,jrds);

<a href="//JasperRunManager.runReportToPdfFile">//JasperRunManager.runReportToPdfFile</a>(“Teste.jasper”,parametros,jrds);

JasperExportManager.exportReportToPdfFile(“D:/SWING/motoristasTeste/BibliotecaPessoal/src/bibliotecapessoal/relatorioMotoristas2.jrprint”);

// eu que comentei  so que não abre meu pdf JasperViewer.viewReport(“RelatorioBiblioteca.pdf”,false);

O pdf gera mas não abre na pagina…e se eu tiver 10 registros no meu banco somente aparece o primeiro registro enquanto se eu usar o ireport aparece todos…o sql é o mesmo o que será???

ai vai o sql:
result = stat.executeQuery(“SELECT DISTINCT codigo, titulo, autor from livro”);

Desde já agradeço pela ajuda…ou melhor pela SUPER FORÇA…Obrigado colegas

ziplove

Desculpe pessoal…mosqueei…tinha colocado os fields no pageheader e não no detail no ireport por isso que estava imprimindo somente o primeiro campo…hehehe…

Mas o problema de não imprimir o pdf continua…Um ótimo inicio de semana a todos vcs…

// eu que comentei so que não abre meu pdf JasperViewer.viewReport(“RelatorioBiblioteca.pdf”,false);

Criado 8 de março de 2007
Ultima resposta 12 de mar. de 2007
Respostas 13
Participantes 3