Boa tarde pessoal.
Estou com o seguinte problema:
Tenho um realtorio gerado pelo iReport, no qual não utilizo nenhum tipo de conexão ou consulta.
Envio uma collection de Objetos (ReservaVO) que tenho na memoria da seguinte forma:
/** iReport */
public String printReport() {
try {
InputStream isReport = this.getClass().getResourceAsStream("/br/com/banstur/reservas/resources/jr/rptRoomlist.jasper");
JasperReport jrReport = (JasperReport) JRLoader.loadObject(isReport);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource((Collection) this.getArrayReservas().getWrappedData());
Map parameters = new HashMap();
parameters.put("LOGO_EMPRESA", JSFHelper.getRealPath());
parameters.put("PERIODO", this.getQryCriterio());
byte[] bytes = JasperRunManager.runReportToPdf(jrReport, parameters, ds);
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();
FacesContext.getCurrentInstance().responseComplete();
return "go_con_hotel_roomlist";
} catch (Exception e) {
String msgError = "Erro ocorrido ao gerar relatorio(pdf) - rptRoomlist.jasper";
JSFHelper.setSessionAttribute("session.SystemException", new SystemException(msgError, e));
return "go_error_page";
}
}
pois acho desnecessário fazer com que o iReport solicite ao JPA ir buscar dados no BD que já estão na memoria.
Consigo listar perfeitamente todas as reservas uma por linha, normalmente, cada campo acessando um atributo do Objeto ReservaVO.
O problema agora é que este objeto ReservaVO possui tambem como um de seus atributos uma Collection de Objetos (ApartamentoVO) que necessito exibir como um subRelatorio.
Alguem sabe como faço para passar esta collection de apartamentos para o subRelatório ?