Tutorial jasperirport com jsf onde?

alguem sabe onde tem um tutorial mais simples possivel
usando os dois ?
to precisando gerar uns relatorio
mas nao sei como faz
vlw

Você não sabe como exibir? O que você precisa?
Att.

Qual sua dúvida amigo?

[]'s

nao e nada de mais
eu tenho minha dataTable com a lista de algumas coisas…
quero gerar isso em pdf…
mas nao sei como faz…
quero um tutorial como faz isso…
e so pegar a query e gerar o pdf… simples…
e chamar o botao no jsf depois…
algum tutorial exemplo?

public void generateReport(ActionEvent actionEvent) throws ClassNotFoundException, SQLException, IOException, JRException
{
Connection connection;
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/DbReport.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
Class.forName(�"com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/flightstats?user=user&password=secret");
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(), connection);
connection.close();
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE HTML PUBLIC &#65533;"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Generate Report</title>
</head>
<body>
<f:view>
<h:outputText value="Click on the link below to generate the
report."/>
<h:form>
<h:commandLink action="generate_report"
actionListener="#{reportGenerator.generateReport}">
<h:outputText value="Generate Report"/>
</h:commandLink>
</h:form>
</f:view>
</body>
</html>

É só vc adaptar para o que vc precisa, amigo :wink:

[]'s

cara
eu to usando o hibernate junto com spring…
esse metodo fica a mesma coisa?
pq acho que nao precisa dessa chamada…
outra coisa…
so preciso desse metodo?
nao tem que mapear nada?
nao tem que ter o arquivo jasper, jxml essas coisas?

vlw
me explica melhor

SIm, a linha do arquivo do jasper ( supondo que já foi compilado o jrxml ) é em:

InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/DbReport.jasper");

O método você coloca no seu backing-bean do jsf, vc sabe configurar o backing-bean? E vc pode mandar diversos tipos de arquivo ( Map, Collections e etc ) para o construtor do:

JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(), connection);

Você só precisa mudar a assinatura do método :wink:

[]'s

entao velho
estranho… nunca tinha visto isso
eu copiei teu metodo e colei na minha classe
nao tem erro de compilacao, ja importei tudo…
mas nao salva…

Save could not be completed…
Reason:
some characters cannot be mapped using Cp152 character econding
Either change the econding or remove the character whitch are not supported by the cp1252 character econding…

???

se tem a classe completa?

Cola sua classe aqui

Isso eu peguei de um livro que eu tenho.

Sua classe não tem uns caracteres # no começo de cada linha né?

[code]package br.com.intacto.a_hiber_jsf.view;

import java.awt.event.ActionEvent;
import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

import javax.faces.context.FacesContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;

import com.mysql.jdbc.Connection;

public class teste {
	
	
	    public void generateReport(ActionEvent actionEvent) {  
	    Connection connection;  
	    FacesContext context = FacesContext.getCurrentInstance();  
	    HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();  
	    InputStream reportStream = context.getExternalContext().getResourceAsStream("/reports/DbReport.jasper");  
	    ServletOutputStream servletOutputStream = response.getOutputStream();  
	    Class.forName(&#65533;"com.mysql.jdbc.Driver");  
	   	connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/flightstats?user=user&password=secret");  
	   JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(), connection);  
	   connection.close();  
	   response.setContentType("application/pdf");  
	   servletOutputStream.flush();  
	   servletOutputStream.close();  
	   }  

}
[/code]

nao compila a classe
da esse erro.

nao tem um exemplo com o hibernate?

problema na linha 28

É só vc criar um método do Hibernate que retorna uma Collection de Bean e usar a classe JRBeanCollection do Jasper e setar ela no runReportToPdfStream…

Tenho com hibernate e struts, serve?

eu so preciso dos metodos necessario que pega minha lista do banco e joga no pdf…
usando hibernate

To baixando o fonte na minha maquina e já te mando!

vlw velho
-=d

Ai está:

Collection resultados = new ArrayList();
Map parameters;
resultados = queries.buscarBeansRelatorio(bean.getRelatorioUnidadeID());
JRBeanCollectionDataSource jrbs = new JRBeanCollectionDataSource(resultados);
ServletContext context = req.getSession().getServletContext();
		
		InputStream inputStream = context.getResourceAsStream("/relatorio/relatorio_sgdi.jasper");
		resp.setContentType("application/pdf");
		JasperRunManager.runReportToPdfStream(inputStream, servletOutputStream, parameters, jrbs);
	
		servletOutputStream.flush();
		servletOutputStream.close();

Queries.java

public Collection buscarBeansRelatorio(Integer unidade){
Collection x;
//metodo
return x;

poe completo pra mim cara
vlw
esse metodo de baixo eu coloco ele onde?

http://www.netbeans.org/kb/55/vwp-reports_pt_BR.html
5 segundos de pesquisa no google :evil: