Bom dia pessoal,
eu estou tentando como eu vou gerar um relatorio que possui mais de uma entidade, ou seja, eu vou enviar o parametro dentro de um hasmap, mas pelo que eu saiba, só iria da certo se fosse a mesma entidade. Como eu vou fazer para enviar se for mais de uma entidade?
Exemplo do meu método:
ReportUtil reportUtil = new ReportUtil(param,
"/relatorio/jasper/listaUsuario.jasper",
listAuxUsuario, "relatorio.pdf");
saida = reportUtil.geraRelatorio();
Bem, qual é o meu problema. O outro relatorio que eu preciso gerar, ele não possui apenas "listaUsuario" como resultado, eu teria que ter listaDocumentos, listaBoletos… etc …
alguem teria ideia de como eu faria?
Aqui estão alguns métodos utilizado para gerar o relatorio:
construtor padrão da classe ReportUtil:
public ReportUtil(Map map, String pathArquivo, Collection<?> collection, String pathSaida) {
this.map = map;
this.pathArquivo = pathArquivo;
this.collection = collection;
this.pathSaida = pathSaida;
this.getContexto();
}
método para gerar o relatorio
public String geraRelatorio() {
String result = null;
FacesMessage facesMessage = null;
try {
datasource = new JRBeanCollectionDataSource(collection);
jasperPrint = JasperFillManager.fillReport(getDiretorioReal(pathArquivo), map, datasource);
JasperExportManager.exportReportToPdfFile(jasperPrint,getDiretorioReal(pathSaida));
result = getContextPath() +"/"+ pathSaida;
System.out.println("----Relatório arquivo .pdf gerando----");
} catch (JRException e) {
e.printStackTrace();
facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,e.getMessage(),"");
FacesContext.getCurrentInstance().addMessage("", facesMessage);
}catch (Exception e) {
e.printStackTrace();
facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,e.getMessage(),"");
FacesContext.getCurrentInstance().addMessage("", facesMessage);
}
//FacesContext.getCurrentInstance().addMessage("", facesMessage);
return result;
}