Problemas na geração de relatório - RESOLVIDO

8 respostas
L

Bom dia, criei uma aplicação desktop com iReport, utilizando a IDE NetBeans, realizei teste, até ai tudo OK. Até criei um instalador para o sistema.

Mas quando eu termino a instalação e executo o programa, todas os CRUD’s ocorrem certos conforme programado, menos os relatórios que nao sao gerados.

Alguem sabe o motivo?

Obrigado.

8 Respostas

drsmachado

Provavelmente o programa não encotnre o caminho para os arquivos .jasper

juceliohv

Você poderia postar o código de chamada o relatório?

L

try { HashMap parametros = new HashMap(); JasperPrint jp = JasperFillManager.fillReport("C:/SCGD/Jasper/Acesso_Sistema.jasper", parametros, conexao.Connect()); JasperViewer jv = new JasperViewer(jp, false); jv.setVisible(true); } catch (Exception e) { e.printStackTrace(); }

Tentei pela leitura do caminho armazenado em um arquivo txt, mas mesmo assim nao tive sucesso.

juceliohv

talvez isto te ajude. Pra mim funcionou...

package util;

import gui.util.ParametrosRelatorio;

import java.io.File;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;

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.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;

import com.mysql.jdbc.Connection;


public class contructDetalhado {

    @SuppressWarnings({"unchecked"})
    public contructDetalhado(ParametrosRelatorio param) throws JRException, IOException, ClassNotFoundException {
        String data = null;
        
        if(param.getAvaliacao().getPeriodo() != null) {
            data = new SimpleDateFormat("MM/yyyy",new Locale("pt","BR")).format(param.getAvaliacao().getPeriodo());
        }else{
            data = "N/A";
        }
        
        HashMap map = new HashMap();
        map.put("martinelliIcon", "relatorios/logo_martinelli.gif");
        map.put("spedIcon", "relatorios/sped.png");
        map.put("cliente",param.getEmpresa().getNome_empresa());
        map.put("cnpj", param.getAvaliacao().getErrosPrinPK().getCod_cnpj());
        map.put("datahora",param.getAvaliacao().getErrosPrinPK().getDatahora());
        map.put("MaxResults",param.getNumResult());
        map.put("AvalAtuais",String.valueOf(param.getAvaliacao().getValidAtuais()));
        map.put("ArqProc",param.getArqInform());
        map.put("LinhasImpor",String.valueOf(param.getAvaliacao().getLinhasImpor()));
        map.put("LinhasValidas",String.valueOf(param.getAvaliacao().getLinhasValidas()));
        map.put("LinhasInvalidas",String.valueOf(param.getAvaliacao().getLinhasInvalidas()));
        map.put("ValEfet",String.valueOf(param.getAvaliacao().getValEfet()));
        map.put("ValEfetSemErros",String.valueOf(param.getAvaliacao().getValEfetSemErros()));
        map.put("ValEfetComErros",String.valueOf(param.getAvaliacao().getValEfetComErros()));
        map.put("periodo", data);


        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(getClass().getResource("/relatorios/AvaliacaoDetalhada.jasper"));
        

        // Carregando o JDBC Driver
        String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver

           Class.forName(driverName);

        // Criando a conexão com o Banco de Dados
        String serverName = "localhost";
        String mydatabase = "mtavalpiscofins";
        String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
        String username = "root";
        String password = "root";
        Connection connection = null;
        try {
            connection = (Connection) DriverManager.getConnection(url, username, password);
        } catch (SQLException ex) {
            Logger.getLogger(contructDetalhado.class.getName()).log(Level.SEVERE, null, ex);
        }

        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, connection);
        //JasperExportManager.exportReportToPdfFile(jasperPrint, pdfFile);
        
//        JasperViewer jrviewer = new JasperViewer(jasperPrint, false);
//        
//        
//        jrviewer.setIconImage(null);
//        jrviewer.setTitle("");
//        jrviewer.setName("");
//        jrviewer.setVisible(true);       
//        jrviewer.setFitPageZoomRatio();
        
        File file = new File(System.getenv("HomeDrive")+System.getenv("HomePath")+"\\AppData\\Local\\Temp\\AvalSpedPDF.pdf");        
        
        JasperExportManager.exportReportToPdfFile(jasperPrint, file.getAbsolutePath());  
        Runtime.getRuntime().exec("cmd /c start " + file.getAbsolutePath());  
          
        file.deleteOnExit();  
        
        
        
        
    } 
}
juceliohv

Só uma dúvida.

Pra gerar o .jasper você utilizou um plugin do jasper pra dentro do netbeans, ou você instalou o IReport separado do teu netbeans de desenvolvimento?

Eu uso o IReport separado das minhas IDES de desenvolvimento. Já tentei no passado usar plugins para meu netbeans mas deu um monte de problemas.

L

Problema resolvido…

O erro estava em uma imagem do relatorio no qual apontava um diretorio inexistente.

Obrigado a todos…

juceliohv

Parsa! Só edita o primeiro post e coloca [RESOLVIDO] no final do titulo. Dai outros já vão saber que funcionou.

Abraço.

ViniGodoy

Movido para o fórum de frameworks, ferramentas e utilitários.

Criado 31 de janeiro de 2012
Ultima resposta 1 de fev. de 2012
Respostas 8
Participantes 4