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 /
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();
}
/ Inicio do bloco que ira gerar nossos relatorios e 3ª parte /
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]);
//parameters.put(“PARAMETRO_3”, array[5]);
//parameters.put(“PARAMETRO_4”, array[4]);
//parameters.put(“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();
}
}
/ 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