relatório ireport

8 respostas
L

Bom dia a todos,

Estou desenvolvendo uma aplicação web e gostaria de gerar relatórios de algumas tabelas. Enfim, eu já consigo gerar um relatório de uma consulta simples, onde o usuário somente clica em um botão na minha pagina .xhtml e ele gera um relatório com base em uma consulta. Só que eu queria gerar um relatório passando alguns parâmetros na minha pagina .xhtml.

Se alguém possuir um tutorial ou souber uma forma simples de explicar ficarei muito grato.

8 Respostas

erico_kl

você está trabalhando com algum BD? Se sim, por que você não passa esses parâmetros para a sql?

R

Luis,vc precisa colocar os parâmetros no seu Map e pegar no Ireport,algo como:

params.put("nome","xpto");

e no Ireport:

$P{nome}
jhaga

Talvez estes links te ajudem:

Desenvolvendo Relatorios Profissionais Com iReport
Relatorios com iReport
Desenvolvendo o primeiro relatório usando ireport

L

Estou fazendo desta forma.

public void gerarPDF() throws JRException , IOException {
		EntityManager em = new JPAUtil().getEntityManager();
		
		Query query = em.createQuery("select a from Apropriar a");
		
		List<ModeloRelApropriacao> lista = (List<ModeloRelApropriacao>) query.getResultList();
		JRBeanCollectionDataSource beanCollection = new JRBeanCollectionDataSource(lista);
		
		String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/report1.jasper");
		
		JasperPrint jasperPrint = JasperFillManager.fillReport(reportPath, new HashedMap(), beanCollection);
		
		HttpServletResponse httpServlet = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
		httpServlet.addHeader("Content-disposition", "attachment; filename=apropriacoes.pdf");
		ServletOutputStream servletOutputStream = httpServlet.getOutputStream();
		JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
		FacesContext.getCurrentInstance().responseComplete();
		
	}

Em vez de eu passar um new HashedMap eu faço um HashedMap de parametros e na minha consulta eu coloco as condições where e and ?

erico_kl

geralmente você só vai utilizar HashMap quando você precisar de algum dado que não seja pertinente aos dados iterados no relatório…
Imagine um relatório que liste os carros de uma revenda… filtros por marca, modelo, ano etc. são mandados para sua SQL, enquanto o título do relatório, por exemplo, pode ser passado no HashMap

R

Depende,que parâmetros são esses que vc quer passar pro relatório?

L
select a from Apropriar a

Então com base na consulta acima, eu possuo nessa consulta um campo chamado data. Ai no meu formulário eu pesso para o usuário informar a data para poder gerar o relatório.

Ai no caso minha consulta ficaria assim ?

Apropriar apropriar =  new Apropriar();

select a from Apropriar a where a.data = "apropriar.getData"

Isto ?

R
luis.feitoza:
select a from Apropriar a

Então com base na consulta acima, eu possuo nessa consulta um campo chamado data. Ai no meu formulário eu pesso para o usuário informar a data para poder gerar o relatório.

Ai no caso minha consulta ficaria assim ?

Apropriar apropriar =  new Apropriar();

select a from Apropriar a where a.data = "apropriar.getData"

Isto ?

Então vc coloca o seguinte:

params.put("data",apropriar.getData());

Criado 16 de agosto de 2012
Ultima resposta 16 de ago. de 2012
Respostas 8
Participantes 4