Galera,
estou querendo passar duas listas de objetos para o Ireport. A primeira lista seria para o relatório principal e a segunda lista seria para o sub-relatório. Acredito que da forma que eu fiz esteja errado.
Segue abaixo:
public void gerarRelatorioPDF() {
try {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
ServletOutputStream servletOutputStream = response.getOutputStream();
String arquivoRelatorio = "br/com/petrobras/farmacoweb/relatorios/RelatorioEstoqueIrregular.jasper";
InputStream in1 = this.getClass().getClassLoader().getResourceAsStream(arquivoRelatorio);
// Primeira lista
JasperRunManager.runReportToPdfStream(in1, servletOutputStream, new HashMap(), new JRBeanCollectionDataSource(this.movimentacaoList));
// Segunda lista
JasperRunManager.runReportToPdfStream(in1, servletOutputStream, new HashMap(), new JRBeanCollectionDataSource(this.estoqueEspecialList));
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;filename=\""
+ "Relatorio_Inventario.pdf" + "\"");
response.setHeader("Cache-Control", "no-cache");
servletOutputStream.flush();
servletOutputStream.close();
context.responseComplete();
} catch (Exception e) {
LOGGER.warn(e.getMessage());
throw new SystemException(e);
}
}
Qual seria a forma correta?
Vlw Galera.