JasperReport [RESOLVIDO]

1 resposta
Luis_Renato

Bom galera, procurei problemas iguais ao meu e não encontrei.

Eu tenho um JasperReport (que foi feito com o plugin) chamado relatorioEstoque e gostaria de chamá-lo dentro da aplicação. A minha aplicação não é web.

O pessoal fala pra usar as seguintes linhas:

try  {  
         jasperReport = JasperCompileManager.compileReport("relatorioEstoque.jrxml");  
         jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, HibernateUtil.getConnection());  
         jasperViewer = new JasperViewer(jasperPrint, false );  
         jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);  
         jasperViewer.setVisible(true);  
      
} catch (JRException ex)  {  
          Logger.getLogger(JD_PrecoVenda.class.getName()).log(Level.SEVERE, null, ex);  
}

Porém, dá erro na primeira linha quando executo.

Exception in thread AWT-EventQueue-0 java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:143)

at Interface.JanelaPrincipal.actionPerformed(JanelaPrincipal.java:224)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester

1 Resposta

B

Bom Dia Luiz ,esse tutorial da JavaFree.org me ajudou muito:

http://javafree.uol.com.br/artigo/871484/Relatorios-com-iReport.html

//codigo tirado dessa página

ExcRepositorio.java

public class ExcRepositorio extends Exception {

public ExcRepositorio(String mensagem) {

super(mensagem);

}

}
gConexao.java

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;
public class gConexao {

private static Connection con;

public static Connection getConexao() throws ExcRepositorio {

String driver = com.mysql.jdbc.Driver;

String url = jdbc:mysql://localhost:3306/meuprojeto”;

String login = root;

String senha = “”;

try {

Class.forName(driver);

con = DriverManager.getConnection(url, login, senha);

} catch (ClassNotFoundException e) {

throw new ExcRepositorio("Driver não encontrado: " + e.getMessage());

} catch (SQLException e) {

throw new ExcRepositorio("Erro abrindo conexão: " + e.getMessage());

}

return con;

}

}
principal.java

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.view.JasperViewer;
public class principal {

public static void main(String[] args) throws JRException {

repositorioProduto rep = new repositorioProduto();

JasperPrint relat;
//Insere mais um produto e exibe o relatorio  
  String desc = JOptionPane.showInputDialog("Descrição do produto: ");  
  double valor = Double.parseDouble(JOptionPane.showInputDialog("Valor: "));  
  produto prod = new produto(desc,valor);  
    
  try {  
     rep.inserir(prod);  
     relat = rep.gerar();  
     JasperViewer.viewReport(relat, false);  
  } catch (ExcRepositorio e) {  
     JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());  
  }

}
}

produto.java

public class produto {

private int cod;

private String descricao;

private double preco;
public produto(String desc, double preco){

this.setDescricao(desc);

this.setPreco(preco);

}

public int getcod() {return cod;}

public String getDescricao() {return descricao;}

public double getPreco() {return preco;}
public void setcod(int cod) {

this.cod = cod;

}

public void setDescricao(String desc){

this.descricao = desc;

}

public void setPreco(double pc){

this.preco = pc;

}

}
repositorioProduto.java

import java.sql.Connection;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.HashMap;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

public class repositorioProduto{

public repositorioProduto() {}

public void inserir(produto prod) throws ExcRepositorio{

String desc = prod.getDescricao();

double preco = prod.getPreco();

String SQL = "insert into tb_Produtos (descricao, preco) values " +

(’” + desc + "’, " + preco + );
Connection conn = null;  
  Statement stat = null;  
  try {  
     conn = gConexao.getConexao();  
     stat = conn.createStatement();  
     stat.executeUpdate(SQL);  
  } catch (SQLException e) {  
     throw new ExcRepositorio("Erro na conexão ao inserir: " + e.getMessage());  
  } finally {  
     if (stat != null) {  
        try {  
           stat.close();  
        } catch (SQLException e) {  
           throw new ExcRepositorio("Erro ao fechar conexão: " + e.getMessage());  
        }                          
     }  
  }
}

public JasperPrint gerar() throws ExcRepositorio{

JasperPrint rel = null;

try {

Connection con = gConexao.getConexao();

HashMap map = new HashMap();

String arquivoJasper = relatorio.jasper;

rel = JasperFillManager.fillReport(arquivoJasper, map, con);

} catch (JRException e) {

JOptionPane.showMessageDialog(null,e.getMessage());

}

return rel;

}

}
Criado 1 de outubro de 2011
Ultima resposta 5 de out. de 2011
Respostas 1
Participantes 2