Tudo bem galera?
Eu gostaria q alguem pudesse me ajudar a entender direito como faço para criar uma classe que gere relatório atraves do design criado no ireport…eu criei um de exemplo com dois campos em um H2 id e nome(tabela usuario) e o ireport ele compila e mostra o relatorio direitinho mas não estou conseguindo gerar uma classe com jasper utilizando esse modelo…alguem pode me ajudar?
vc jah leu esse tutorial aqui ??
ele explica mais ou menos como usar
Li sim mas não consegui fazer a parte de criação de relatório pela classe
hehehe, eu tbm to com o mesmo problema
mas qual é exatamente o problema?
Não compila?
no meu caso não gera o PDF
ele da um monte de erros
Ele gera um erro : vou postar pra ajudar:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
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.JasperManager;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
public class RelatprioUsuario {
public RelatprioUsuario() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CONEXAO conexao = new CONEXAO();
Connection conn = conexao.getConnection();
try {
PreparedStatement stm = conn.prepareStatement("SELECT * from usuario");
ResultSet rs = stm.executeQuery();
//JasperDesign design = JasperManager.loadXmlDesign("teste2.jrxml");
//JRResultSetDataSource jrs = new JRResultSetDataSource(rs);
Map parameters = new HashMap();
JasperFillManager.fillReportToFile("teste2.jasper", parameters, conn);
JasperExportManager.exportReportToPdfFile("teste2.jrprint");
JasperViewer.viewReport("teste2.pdf", false);
conn.close();
conexao.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ERRO:
net.sf.jasperreports.engine.JRException: Class not found when loading object from file : teste2.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:96)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:89)
at RelatprioUsuario.main(RelatprioUsuario.java:39)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.SequencedHashMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
… 2 more
Galera…descobri o erro…estava faltando no classpath as libs do ireport…desculpa pela cabeçada e obrigado pela força