[RESOLVIDO]AJUDA IREPORT ERRO - Class not found when loading object from file.rtf

3 respostas
J

Pessoal bom dia a todos,
Preciso fazer um select no banco quando o usuário clicar e um botão, o resultado exibir em relatório, estou usando o iReport-1.3.1
segue abaixo o código que estou usando:

minha classe de conexão com o banco:

package Telas;

import java.sql.*;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class conexao1 {
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
     //final private String url = "jdbc:odbc:AgendaNetBeans";
     final private String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}" +
     ";DBQ=c:/Despesa";
     
     private Connection conexao;
     public Statement statement;
     public ResultSet resultset;

     public boolean Conecta(){
         boolean result = true;
       try{
            Class.forName(driver);//Carrega o driver
            conexao = DriverManager.getConnection(url);//Estabelece a conexão //
           }catch(ClassNotFoundException Driver){
               JOptionPane.showMessageDialog(null,"Driver não localizado" + Driver);
              result = false;
           }
            catch(SQLException Fonte){
                JOptionPane.showMessageDialog(null,"Deu erro na conexão com " +
                        "a fonte de Dados" + Fonte);
               result = false;
            }
         return result;
     }
     public void execulteSQL(String sql){
         try
       {
             statement = conexao.createStatement(
             ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
             resultset = statement.executeQuery(sql);
        }catch(SQLException sqlex){
         JOptionPane.showMessageDialog(null,"Não foi possivel "  +
               "execultar o comando sql, " + sqlex + " o sql passado foi" + sql);
    }
    }

    Object get(int selectedRow) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

classe responsável pelo relatorio

public class relatorio {
    Conexao conecta = new Conexao();
    public relatorio(){   

     try{
            conecta.conecta();
            conecta.execulteSQL("SELECT * FROM Despesas");

                JRResultSetDataSource jrSR = new JRResultSetDataSource(conecta.resultset);
                JasperPrint jasperPrint =  JasperFillManager.fillReport(
           "c:/Arquivos de programas/relatorio/despesas.jasper", new HashMap(),jrSR);
                JasperViewer jrv = new JasperViewer(jasperPrint,false);
                jrv.setVisible(true);
        }catch(Exception erro){
                JOptionPane.showMessageDialog(null,"Relatório não encontrado: \n" +
                 "" + erro, "ATENÇÂO",JOptionPane.ERROR_MESSAGE);
        }
    }
}
private void btConsultaActionPerformed(java.awt.event.ActionEvent evt) {    
	//exibe o relatório
	new relatorio.relatorio();

}
Porém quando clico no botão consultar, o sistema me dá o seguinte erro: net.sf.jasperreports.egine.JRException:Class not found when loading object from file: c:\Arquivos de programas\relatorio\despesas.jasper

Alguém pode me ajuda por favor, agradeço

3 Respostas

juliocesarss

Olá

Eu aconselho o seguinte:

-Atualize o seu iReport, ele ja está na versão 3.7.6, bem longe dessa que você está usando ^^

-No próprio iReport tem o local onde você faz a pesquisa, da pra trabalhar usando o banco só com o iReport, sem fazer tudo isso via código, é mais viável.

Dica: Estude mais sobre o iReport, ele possui várias ferramentas que vão te poupar centenas de linhas de códigos.

Pra você ter idéia, eu crio um relatório desse só com o iReport e menos de 10 linhas de código java.

Procure e baixe na net uma video aula de IReport da empresa T2ti ( joga la no google ^.^ ) concerteza você vai aprender tudo o que precisa sobre iReport.

J

Ok obrigado pela dica, vou atualiza ele e quando o problema for solucionado eu coloco o tópico como resolvido.
obrigado

J

Pessoal consegui resolver este problema,
é só copias os jars: commons-collections-2.1.jar e commons-logging-1.0.2.jar
para a pasta do projeto.

Agradeço pela atençao de todos

Criado 28 de dezembro de 2010
Ultima resposta 30 de dez. de 2010
Respostas 3
Participantes 2