IReport e JasperReport

7 respostas
arochafademac

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?

7 Respostas

G

vc jah leu esse tutorial aqui ??
ele explica mais ou menos como usar

http://www.guj.com.br/java.tutorial.artigo.151.1.guj

arochafademac

Li sim mas não consegui fazer a parte de criação de relatório pela classe

G

hehehe, eu tbm to com o mesmo problema

L

mas qual é exatamente o problema?
Não compila?

G

no meu caso não gera o PDF
ele da um monte de erros

arochafademac

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
arochafademac

Galera…descobri o erro…estava faltando no classpath as libs do ireport…desculpa pela cabeçada e obrigado pela força

Criado 30 de julho de 2007
Ultima resposta 6 de ago. de 2007
Respostas 7
Participantes 3