Problema ao abrir relatorio ireport na aplicação java (.jar)

0 respostas
murillo_smit

Bom dia galera to com esse problema desde de ontem! eu fiz uma aplicação em java q gera um relatorio pelo ireport, até ai tudo bem
na maquina que eu fiz essa aplicação roda tudo certo, quando eu mundei de maquina e botei pra rodar a aplicação rodou beleza, mais na hora de chamar o relatorio ñ aparece nada
ve em uns posts q pode ser o caminho, mais na duvida vou mostar o codigo todo! segue:

Codigo que abrir o relatorio

InputStream inputStream = getClass().getResourceAsStream("/RelatoriosViews/BuscaCliente.jasper");

        // mapa de parâmetros do relatório 
        Map parametros = new HashMap();

        parametros.put("cliente", id);

        try {

            // abre o relatório
            ReportUtils.openReport("Clientes", inputStream, parametros,
                    ConnectionFactory.getSakilaConnection());


            // Visualiza o relatório em formato PDF */
            // JasperViewer.viewReport("idCliente.pdf", false);

        } catch (SQLException exc) {
            exc.printStackTrace();
        } catch (JRException exc) {
            exc.printStackTrace();
        }
Aqui a conexão:
package RelatoriosViews;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class ConnectionFactory {

    /*
     * Este bloco estático será executado assim que esta classe for carregada,
     * sendo assim, será executado apenas uma vez.
     */
    static {
        try {
            /*
             * Carrega a classe com.mysql.jdbc.Driver, que é a implementação do
             * driver JDBC para o MySQL.
             */
            Class.forName("com.mysql.jdbc.Driver");

            // caso a classe não seja encontrada
        } catch (ClassNotFoundException exc) {

          
            exc.printStackTrace();

        }
    }

    /**
     * O método getConnection retorna uma conexão com o banco de dados baseado
     * nos parâmetros fornecidos.
     *
     * @param url O endereço da base de dados.
     * @param usuario O usuário que tem permissão na base de dados especificada.
     * @param senha A senha do usuário especificado
     * @return Uma conexão com o banco de dados especificado na url.
     * @throws SQLException Caso ocorra algum problema durante a conexão.
     */
    public static Connection getConnection(
            String url,
            String usuario,
            String senha) throws SQLException {

        // retorna a conexão a partir do método getConnection de DriverManager
        return DriverManager.getConnection(url, usuario, senha);

    }

    /**
     * Obtém uma conexão para a base de dados sakila.
     *
     * @return Uma conexão para a base de dados sakila.
     * @throws SQLException Caso ocorra algum problema durante a conexão.
     */
    public static Connection getSakilaConnection() throws SQLException {

        return getConnection(
                "jdbc:mysql://localhost/ivelbanco",
                "root",
                "458621");

    }
}
Aqui trata o relatorio:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package RelatoriosViews;

import java.awt.BorderLayout;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JFrame;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;

/**
 * Classe com métodos utilitários para executar e abrir relatórios.
 *
 *
 */
public class ReportUtils {

    /**
     * Abre um relatório usando uma conexão como datasource.
     *
     * @param titulo Título usado na janela do relatório.
     * @param inputStream InputStream que contém o relatório.
     * @param parametros Parâmetros utilizados pelo relatório.
     * @param conexao Conexão utilizada para a execução da query.
     * @throws JRException Caso ocorra algum problema na execução do relatório
     */
    public static void openReport(
            String titulo,
            InputStream inputStream,
            Map parametros,
            Connection conexao) throws JRException {

        /*
         * Cria um JasperPrint, que é a versão preenchida do relatório, usando
         * uma conexão.
         */
        JasperPrint print = JasperFillManager.fillReport(
                inputStream, parametros, conexao);

        // abre o JasperPrint em um JFrame
        viewReportFrame(titulo, print);

    }

    /**
     * Abre um relatório usando um datasource genérico.
     *
     * @param titulo Título usado na janela do relatório.
     * @param inputStream InputStream que contém o relatório.
     * @param parametros Parâmetros utilizados pelo relatório.
     * @param dataSource Datasource a ser utilizado pelo relatório.
     * @throws JRException Caso ocorra algum problema na execução do relatório
     */
    public static void openReport(
            String titulo,
            InputStream inputStream,
            Map parametros,
            JRDataSource dataSource) throws JRException {

        /*
         * Cria um JasperPrint, que é a versão preenchida do relatório, usando
         * um datasource genérico.
         */
        JasperPrint print = JasperFillManager.fillReport(
                inputStream, parametros, dataSource);

        // abre o JasperPrint em um JFrame
        viewReportFrame(titulo, print);

    }

    /**
     * Cria um JFrame para exibir o relatório representado pelo JasperPrint.
     *
     * @param titulo Título do JFrame.
     * @param print JasperPrint do relatório.
     */
    private static void viewReportFrame(String titulo, JasperPrint print) {

        /*
         * Cria um JRViewer para exibir o relatório. Um JRViewer é uma JPanel.
         */
        JRViewer viewer = new JRViewer(print);

        // cria o JFrame
        JFrame frameRelatorio = new JFrame(titulo);

        // adiciona o JRViewer no JFrame
        frameRelatorio.add(viewer, BorderLayout.CENTER);

        // configura o tamanho padrão do JFrame
        frameRelatorio.setSize(500, 500);

        // maximiza o JFrame para ocupar a tela toda.
        frameRelatorio.setExtendedState(JFrame.MAXIMIZED_BOTH);

        // configura a operação padrão quando o JFrame for fechado.
        frameRelatorio.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        // exibe o JFrame
        frameRelatorio.setVisible(true);

    }
}

Se alguem poder me ajudar, agradeço desde de já!

Criado 20 de março de 2012
Respostas 0
Participantes 1