Jasper reports com xml de dados

5 respostas
leonardo.segala

Pessoal, seria possível criar um arquivo PDF com o JasperReports utilizando um XML de dados? se sim, me indiquem alguma matéria ou tutorial.

Grato a todos!

5 Respostas

abstract

http://www.j2b.com.br/abstract/index.php?op=ViewArticle&articleId=7&blogId=1

leonardo.segala:
Pessoal, seria possível criar um arquivo PDF com o JasperReports utilizando um XML de dados? se sim, me indiquem alguma matéria ou tutorial.

Grato a todos!

leonardo.segala

Mais uma vez obrigado pela atenção!

Bom em relação ao site, não consegui visualizar o tutorial pois o site é muito lento. Se tiver como me enviar ficaria muito grato. Pesquisando no google cheguei ao seguinte código:

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.PrinterName;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
import net.sf.jasperreports.engine.export.JRPrintServiceExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;

public class TesteRelatorio {

	public void geraRelatorio() throws JRException, Exception {

		File reportFile = new File("teste.jasper");
		if (!reportFile.exists()) {
			JasperCompileManager.compileReportToFile("teste.xml", "teste.jasper");
		}
		
		JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
		JRDataSource ds = new JRXmlDataSource("funcionarios.xml");
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), ds);
		JasperExportManager.exportReportToPdfFile(jasperPrint, "teste.pdf");
	}
	public static void main(String[] args) throws JRException, Exception {
		new TesteRelatorio().geraRelatorio();
	}
}

Verifiquei que ele está compilando o xml e gerando o jasper e depois está gerando o pdf. Mas ao visualizar o pdf percebo que ele não está passeando pelo xml, ou seja o pdf contém somente uma página e os valores dos registros contém null.

Gostaria de saber como percorrer o xml de dados para ele preencher o relatório.

Grato a todos!!!

abstract

Fala camarada acredito que foi o nosso provedor de hospedagem "gente boa" mas agora voltou, um abraço

leonardo.segala:
Mais uma vez obrigado pela atenção!

Bom em relação ao site, não consegui visualizar o tutorial pois o site é muito lento. Se tiver como me enviar ficaria muito grato. Pesquisando no google cheguei ao seguinte código:

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.PrinterName;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
import net.sf.jasperreports.engine.export.JRPrintServiceExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;

public class TesteRelatorio {

	public void geraRelatorio() throws JRException, Exception {

		File reportFile = new File("teste.jasper");
		if (!reportFile.exists()) {
			JasperCompileManager.compileReportToFile("teste.xml", "teste.jasper");
		}
		
		JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
		JRDataSource ds = new JRXmlDataSource("funcionarios.xml");
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), ds);
		JasperExportManager.exportReportToPdfFile(jasperPrint, "teste.pdf");
	}
	public static void main(String[] args) throws JRException, Exception {
		new TesteRelatorio().geraRelatorio();
	}
}

Verifiquei que ele está compilando o xml e gerando o jasper e depois está gerando o pdf. Mas ao visualizar o pdf percebo que ele não está passeando pelo xml, ou seja o pdf contém somente uma página e os valores dos registros contém null.

Gostaria de saber como percorrer o xml de dados para ele preencher o relatório.

Grato a todos!!!

leonardo.segala

Fala rapaz!

Eu realmente consegui visualizar o seu tutorial que inclusive achei muito bom e objetivo, e ainda mais, visualizando outras listas de configuração verifiquei que o pessoal está indicando-o. Mas infelizmente não consegui achar um tutorial que trate um datasource em xml. Se conhecer algum por favor me indique. Achei em uma discussão aqui mesmo no GUJ um rapaz que estava conseguindo listar o XML, mas somente o primeiro elemento, ele não estava conseguindo percorrer o XML, no meu caso estou no marco zero. Nem o primeiro elemento estou conseguindo listar.
Aproveitando a discussão. Estava querendo fazer um relatório em que alguns campos apareceriam ora sim, ora não. Queria buscar com vocês uma solução mais simples e inteligente para isto.

abstract

Bom cara pelo que entendi vc quer fazer um “parsear” o xml, então indico algumas fontes de referência que possívelmente irão te ajudar:

http://www.developerfusion.com/show/2064/
http://java.sun.com/developer/TechTips/2000/tt0627.html
http://www.cafeconleche.org/books/xmljava/chapters/ch14s07.html
http://www.cafeconleche.org/books/xmljava/chapters/ch14s07.html
http://javaalmanac.com/egs/javax.xml.parsers/BasicSax.html

leonardo.segala:
Fala rapaz!

Eu realmente consegui visualizar o seu tutorial que inclusive achei muito bom e objetivo, e ainda mais, visualizando outras listas de configuração verifiquei que o pessoal está indicando-o. Mas infelizmente não consegui achar um tutorial que trate um datasource em xml. Se conhecer algum por favor me indique. Achei em uma discussão aqui mesmo no GUJ um rapaz que estava conseguindo listar o XML, mas somente o primeiro elemento, ele não estava conseguindo percorrer o XML, no meu caso estou no marco zero. Nem o primeiro elemento estou conseguindo listar.
Aproveitando a discussão. Estava querendo fazer um relatório em que alguns campos apareceriam ora sim, ora não. Queria buscar com vocês uma solução mais simples e inteligente para isto.

Criado 7 de agosto de 2005
Ultima resposta 9 de ago. de 2005
Respostas 5
Participantes 2