Bom dia!
Estou quebrando a cabeça para gerar um simples subreport em pdf, utilizando JDBCConnection no relatório pai e no subreport, ao compilar os dois relatórios aparecem tranquilamente no pdf, ao gerar o relatório no java, é mostrado apenas o pai, ou filho. Estou enviando o código de quando é gerado o relatório:
String pathJasper = FacesUtil.getCurrentDirectory()+"/WEB-INF/classes/br/com/vieweb";
String reportFileName = pathJasper + File.separator + "ComparativoMediaEncomendas.jasper";
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("data_aa", data_aa);
parametros.put("data_at", data_at);
parametros.put("data_ma", data_ma);
parametros.put("regiao_footer", regiao_footer);
parametros.put("regiao", target);
parametros.put("usuario", MySQLDAO.getUsuarioLogado());
parametros.put("pathSubReport", pathJasper + File.separator + "ResumoComparativoMediaEncomendas.jasper");
JasperReport report = (JasperReport) JRLoader.loadObject(reportFileName);
JasperPrint print = JasperFillManager.fillReport(report, parametros, jrDS);
byte[] bytes = JasperExportManager.exportReportToPdf(print);
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.setHeader("Content-Disposition","inline; filename=report.pdf");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
facesContext.responseComplete();
O outputStream pode escrever apenas um array de bytes??? É possível eu passar o array de bytes do relatório pai e do subreport?
Obrigado