Algém pode amparar um homem desesperado?
Brincadeira
Estou prestes a apresentar um projeto e fiz meus relatorios no iReport-0.5.0
mas não consigo chamar os relatório a partir do java
parece ser as versões do jasp e iReport (icompatibilidade)
Favor
sugestão
veja a classe e os erros ao “executar”
veja
//classe para chamar o relatório
import java.io.IOException; import java.io.StringReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.HashMap;import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;import net.sf.jasperreports.engine.JasperManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.view.JasperViewer;import javax.swing.*;
/* Primeira parte */
public class RelatorioLaboratorio extends JFrame {private Connection con = null;
private String driver = “sun.jdbc.odbc.JdbcOdbcDriver”; private String endereco = “jdbc:odbc:fonteueg”; private String user = “root”; private String pass = “”;/*urlProdutos = “jdbc:odbc:trabalho”; String username = “daniel”; String password = “seabra”;Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); connectProdutos = DriverManager.getConnection ( urlProdutos, username, password);*/private ResultSet rs = null; private String valores[] = new String[10]; private int chamada = 1; private String dir = “”; //private String dir = “C:\projetoUeg\projeto\relMateriais.jasper”; private StringReader stream; /*Segunda parte */public RelatorioLaboratorio() { /* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os em um array para ser futuramente utilizado <em>/ try { if (con == null) { Class.forName(driver); con = DriverManager.getConnection(endereco, user, pass); Statement statement = con.createStatement(); rs = statement.executeQuery(“select * from Tmateriais”); HashMap trabalho = new HashMap(); while(rs.next()) { //for até o numero de campos da tabela for (int i = 1; i < 3; i++) { valores[i] = rs.getString(i); } } } } catch (Exception e) { System.err.println(“Problemas apresentados na operacao de conexao”); e.printStackTrace(); } /</em> Inicio do bloco que ira gerar nossos relatorios e 3ª parte <em>/ try { String array[] = valores; JasperDesign design = JasperManager.loadXmlDesign(dir + “relMateriais.jrxml”); JasperReport jr = JasperManager.compileReport(design); HashMap parameters = new HashMap(); parameters.put(“CodMa”,array[1]); parameters.put(“Descri”, array[2]); <a href="//parameters.put">//parameters.put</a>(“PARAMETRO_3”, array[5]); <a href="//parameters.put">//parameters.put</a>(“PARAMETRO_4”, array[4]); <a href="//parameters.put">//parameters.put</a>(“PARAMETRO_5”,array[9]); JasperPrint impressao = JasperManager.fillReport(jr,parameters,con); JasperViewer jrviewer = new JasperViewer(impressao,false); jrviewer.show(); } catch (Exception e) { System.err.println(“Problemas apresentados na operacao de parametros”); e.printStackTrace(); } } /</em> Aqui chamamos o construtor de nossa classe para exibirmos o relatorio e 4ª parte*/ public static void main (String args[]) { new RelatorioLaboratorio(); System.out.println(“ok”); } } Quando compila não mostra errosQuando executa mostra esses
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/di gester/Digester at net.sf.jasperreports.engine.JasperManager.loadXmlDesign(JasperManager .java:971) at RelatorioLaboratorio.(RelatorioLaboratorio.java:80) at RelatorioLaboratorio.main(RelatorioLaboratorio.java:99) Press any key to continue…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;
Sugestão