Passar parametros de uma página JSP para um Jasper Report

1 resposta
mrmgomes

Boa tarde galera,

procurei, procurei e não achei uma solução para o meu problema, espero que vocês consigam me ajudar!

É o seguinte…

Fiz um aplicativo em Grails, e consegui integrá-lo perfeitamente com o JasperReports.
Acontece que o meu cliente agora, quer a mesma versão do aplicativo em Spring MVC.
Consegui migrar quase tudo (pense num sufoco!), e agora ‘impaquei’ na combinação Spring + Jasper.

[size=18][b]TODOS os meus relatórios estão prontos, com todas as entradas de parâmetros definidas. Só que não consigo
achar um meio de passar os parâmetros do meu form pro relatório.

Pra ser mais claro: Tenho selects e inputs, e gostaria de passar os valores selecionados/digitados pra dentro do jasperreport, simplesmente
clicando no submit de uma página jsp, como acontecia no Grails.[/b][/size]

Alguém tem idéia de como me ajudar? Tem algum sample que eu possa ver? Pois tudo que achei na internet foram códigos que envolviam pojos, controllers e o escambau, não vi o código de uma JSP sequer… Será que realmente precisa disso tudo?

No Grails, eu simplesmente fazia assim:

Preencher a select, e simplesmente dar ao “name” dela, o nome do parametro que tá lá no relatório

Colocar na tag qual o relatório que vai receber os parâmetros

Agradeço desde já pela atenção, pessoal!

Valeu!

Marcelo.

1 Resposta

Ygor

Boa tarde Marcelo.

Não sei se ira te resolver, mas ja pensou na possibilidade de utilizar Jasper através de servlets?

Seria apenas questão de tu enviar os dados através de post para o servlet, e apartir dele fazer a chamada pro jasperReport;
Vou colar um exemplo de uma saida em Pdf que eu utilizo dentro de um servlet

byte[] bytes  = JasperRunManager.runReportToPdf(jasperReport, parameters,jrb);
				if (bytes != null && bytes.length > 0) { 
					response.setContentType("application/pdf");  
					response.setContentLength(bytes.length); 
					ServletOutputStream ouputStream = response.getOutputStream();
					ouputStream.write(bytes, 0, bytes.length);
					ouputStream.flush();
					ouputStream.close();
				}

Sendo parameters um Map de (parametro,value) e jrb um DataSource

Criado 4 de novembro de 2010
Ultima resposta 4 de nov. de 2010
Respostas 1
Participantes 2