Chamar relatorio a partir do java

1 resposta
D

Boa tarde
Tenho que apresentar um projeto final de curso daqui a duas semanas
e estamos com um problema

so sei fazer relatório no iReport

poriço peço " :razz: desesperadamente"

mas não ta conseguindo executar

por favo ... sujestões

veja abaixo
//classe para chamar o relatório
import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.HashMap;
 import java.util.Map;
 import net.sf.jasperreports.engine.JRException;
 import net.sf.jasperreports.engine.JRResultSetDataSource;
 import net.sf.jasperreports.engine.JasperExportManager;
 import net.sf.jasperreports.engine.JasperFillManager;
 import net.sf.jasperreports.engine.JasperPrint;
 import net.sf.jasperreports.engine.JasperRunManager;
 import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;
 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
 import net.sf.jasperreports.view.JasperViewer;
 
 public class GerarRelatorio {
     Connection conexao = null;
     
     public GerarRelatorio() {
         try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             conexao = DriverManager.getConnection("jdbc:odbc:fonteueg","root","");
             
             //Class.forName("com.mysql.jdbc.Driver");
            // conexao = DriverManager.getConnection("jdbc:mysql://localhost/fonteueg","root","");
               
             //com.mysql.jdbc.Driver
         } catch (Exception e) {
             e. printStackTrace();
         }
     }
         
     public void gerarRelatorioHistoricoEstoque() throws Exception, JRException {
        PreparedStatement stmt = null;
        ResultSet rs = null;
        //String caminhoRelatorioJasper = "F:\\AutoSystem\\src\\modelo\\conexao\\historico_estoque.jasper";
        String caminhoRelatorioJasper = "C:\\projetoUeg\\projeto\\relMateriais.jasper";
        
        try{
            stmt = conexao.prepareStatement( "select * from TMateriais");                      
            
            rs = stmt.executeQuery();
            
            JRResultSetDataSource ds = new JRResultSetDataSource(rs);
             
            Map parametros = new HashMap();
            
            try{
                JasperPrint impressao = JasperFillManager.fillReport( caminhoRelatorioJasper,parametros,ds);
                
                JasperViewer viewer = new JasperViewer(impressao, true);
                
            }
            
            catch (JRException e){
                System.out.println("erro: " + e.getMessage());
                e.printStackTrace();
            
            }
            
        }
        catch(Exception e) {
            e.printStackTrace();       
        }
        
        
        
        
         
     }
     
     public static void main(String[] args) throws JRException, Exception
{
new GerarRelatorio().gerarRelatorioHistoricoEstoque();
}

 
 }
Quando compila não mostra erros

Quando executa mostra esses
Mostra esses erros

At.net.fs.jasperreports.engine.until.JRLoader.loadObject<JRloader.java:89>
At.net.fs.jasperreports.engine.JasperFillManager.fillReport<jasperFillManager.java:342>
At.GerarRelatorio.GerarRelatorioHistoricoEstoque<GerarRelatorio.java:156>
Caused by: java.io.InvalidCllass.Exepition: net.fs.JasperReports.engine.base.JRBaseReport; local class incompatible: streem classdesc serialVersinUID = 607, local class serialVersionUID = 1000
At.java.io.ObjectStreemClass.initNonProxy<ObjectStreemClass.java:463>
At.java.io.ObjectInputStreem.readNonProxyDesc<ObjectInputStreem.java:152>
At.java.io.ObjectInputStreem.readClassDesc<ObjectInputStreem.java:1435>
At.java.io.ObjectInputStreem.readNonProxyDesc<ObjectInputStreem.java:152>
At.java.io.ObjectInputStreem.readClassDesc<ObjectInputStreem.java:1435>
At.java.io.ObjectInputStreem.readOrdnaryObject<ObjectInputStreem.java:1626>

At.java.io.ObjectInputStreem.readObject<ObjectInputStreem.java:1274>
At.java.io.ObjectInputStreem.readObject<ObjectInputStreem.java:324>
At.net.fs.jasperreports.engine.until.JRLoader.loadObject<JRloader.java:85>

… 3 more


Veja as variáveis de ambiente(Windows xp)

Nome da variável: CLASSPATH
Valor da variável: .;JAVA_HOME; Fontes de dados (ODBC);JAVA_HOME\lib;ANT_HOME\lib;C:\projetoUeg\projeto\commons-collections-3.2.tar

Nome da variável: PATH
Valor da variável: C:\Arquivos de programas\Java\jdk1.5.0_06\bin;JAVA_HOME\bin;ANT_HOME\bin;commons-collections-3.2.tar;

1 Resposta

S

cara verifica se você ta usando o classpath do jasperreports no seu pragrama, é nescessário que ele esteja dentro dele…
Aparentemente o codigo está correto… o que você vai precisar que está faltando ainda é o (commons-collections-3.2.tar) que tambem deve estar compilado dentro da usa aplicacao

Criado 31 de outubro de 2006
Ultima resposta 1 de nov. de 2006
Respostas 1
Participantes 2