Problema com geração de relatório Ireport

4 respostas
A

Olá Galera,

Estou tentando chamar um relatório ireport de uma aplicação desktop, porém tá dando problema com a conexão com o banco de dados.

Código da classe que gera relatório:

package operations;

import com.mysql.jdbc.Connection;
import connection.DatabaseSettings;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author Junior
 */
public class RelatorioVenda {

    private Connection connection;

    public RelatorioVenda() throws SQLException {
        try {
            Class.forName("org.postgresql.Driver");
            connection = (Connection) DriverManager.getConnection(DatabaseSettings.DATABASE_URL, DatabaseSettings.DATABASE_LOGIN, DatabaseSettings.DATABASE_PASSWORD);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(RelatorioVenda.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void GerarRelatorio() {
        try {
            
            HashMap parametros = new HashMap();
            JasperPrint jp = JasperFillManager.fillReport("./jasper/venda.jasper", parametros, connection);
            JasperViewer jrv = new JasperViewer(jp);
            jrv.setVisible(true);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main (String [] args){
        try {
            new RelatorioVenda().GerarRelatorio();
        } catch (SQLException ex) {
            Logger.getLogger(RelatorioVenda.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

O erro que aparece:
Exception in thread “main” java.lang.ClassCastException: org.postgresql.jdbc3.Jdbc3Connection cannot be cast to com.mysql.jdbc.Connection

Estou usando NetBeans.

4 Respostas

R

Voce esta trabalhando com MYSQL??

A

Blz! Já corrigi. Era o import que estava errado.

Obrigado!

A

Estou com um novo problema, a aplicação chama o visualizador de relatório, porém o sub-relatório aparece vazio, mas no ireport tudo é visualizado corretamente.

Mudeio o método GerarRelatório para isso:

public void GerarRelatorio() {
        try {
            JasperReport jasperReport = JasperCompileManager.compileReport("./jasper/venda.jrxml");
            HashMap parametros = new HashMap();
            parametros.put("SUBREPORT_DIR", "./jasper/");
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, connection);
            JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);
            jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
            jasperViewer.setTitle("VENDA");
            jasperViewer.setVisible(true);
        } catch (JRException ex) {
            ex.printStackTrace();
        }

    }

Aparece o conteúdo da banda Column Header e das outras bandas, menos da banda Detail (no caso a mais importante), alguém sabe o pq?

A

a2sjunior:
Estou com um novo problema, a aplicação chama o visualizador de relatório, porém o sub-relatório aparece vazio, mas no ireport tudo é visualizado corretamente.

Mudeio o método GerarRelatório para isso:

public void GerarRelatorio() {
        try {
            JasperReport jasperReport = JasperCompileManager.compileReport("./jasper/venda.jrxml");
            HashMap parametros = new HashMap();
            parametros.put("SUBREPORT_DIR", "./jasper/");
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, connection);
            JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);
            jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
            jasperViewer.setTitle("VENDA");
            jasperViewer.setVisible(true);
        } catch (JRException ex) {
            ex.printStackTrace();
        }

    }

Aparece o conteúdo da banda Column Header e das outras bandas, menos da banda Detail (no caso a mais importante), alguém sabe o pq?

Galera já tá funfando, o código tá todo correto o problema é tava nos .jar que estavam desatualizados.

Criado 12 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 4
Participantes 2