Relatorio iReport, não executa

3 respostas
T

bom dia.

estou utilizando:
netBenas-5.5.1
iReport-2.0.2

fiz um relatório no iReport. dentro do netBeans ele roda, mas quando vou rodar de dentro da aplicação(pelo jar) ele não roda. ele não gera nenhuma exception.

para debugar em tempo de execução, coloquei no construtor da classe do relatório, um comando para aparecer uma mensagem, mas quando eu tento instanciar ela não aparece a mensagem.

debugando percebi(acho) que o problema está na linha onde preencho o relatório com dados de uma coleção, estou utilizando o comando:

JasperPrint arquivoPrint = JasperFillManager.fillReport(relJasper, parametros, new JRBeanCollectionDataSource(lista));

se eu comento essa linha, quando instancio a classe do relatório, a mensagem do construtor aparece!!!

importei as bibliotecas: commos-beanutils, commos-collections, commos-digester, commos-logging, commos-logging-api, itext e jasperreports, para dentro do projeto.

metódo da classe que tenta execuar o relatório:

protected void executaRelatorio(Map parametros, List lista, String local) throws 
            br.com.utilitario.MinhaException, IOException{

        try{
            
//          ////////////////////////////////////////////////////////////////////
            
            JasperReport relJasper =
                    (JasperReport) JRLoader.loadObject(local);
            
            JasperPrint arquivoPrint =
                    JasperFillManager.fillReport(relJasper, parametros, new JRBeanCollectionDataSource(lista));
            
//          ////////////////////////////////////////////////////////////////////
            
            JasperViewer.viewReport(arquivoPrint, false);  // se tiver true fecha a aplicaçao quando fecha o form de impressao
  
            
        }catch (Exception ex){
            throw new br.com.utilitario.MinhaException(ex);
        }
        
    }

alguém sabe o que pode ser?

obrigado.

3 Respostas

marciofermino

vc quer para desktop ou web?

T

desktop.

marciofermino

Amigo esse codigo esta redondinho vai funcionar;

GeradorRelatorio.java


package javaapplication1;

import java.sql.Connection;
import java.sql.DriverManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JRException;
import java.util.HashMap;

public class GeradorRelatorio {
    public JasperPrint gerarRelatoriosClientes() throws Exception{
        JasperPrint rel=null;

    try{
        
                    Class.forName("com.mysql.jdbc.Driver");
	            Connection con = 
	            	DriverManager.getConnection
	            	("jdbc:mysql://localhost/bd?user=root&password=");

         HashMap map= new HashMap();
         String arquivoJasper= "teste.jasper";
         rel=JasperFillManager.fillReport(arquivoJasper,map,con);
    }catch (JRException e){
        e.printStackTrace();
    }
        return rel;
    }
    
    
}








Button

   GeradorRelatorio rep=new GeradorRelatorio();
        JasperPrint relat;
        try{
            relat=rep.gerarRelatoriosClientes();
            JasperViewer.viewReport(relat,false);
        }catch (Exception e){
            e.printStackTrace();
        }

Até +

Criado 26 de outubro de 2007
Ultima resposta 27 de out. de 2007
Respostas 3
Participantes 2