@Bruno_Miguel escreveu:
Pessoal, estou com dificuldade em chamar um relatório com sub-relatório... já vi alguns soluções aqui tentei implementar mais sem êxito.
mensagem de erro
método que gera o relatório
public void relatorioExtraConta() {
byte[] bytes = null; try { Connection conn = null; conn = this.conexao.getConnection(); FacesContext context = FacesContext.getCurrentInstance(); context.responseComplete(); ServletContext scontext = (ServletContext) context.getExternalContext().getContext(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); //load report location FileInputStream fis = new FileInputStream(scontext.getRealPath("/WEB-INF/Relatorios/Contabilidade/testeReport.jasper")); BufferedInputStream bufferedInputStream = new BufferedInputStream(fis); JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(bufferedInputStream); Map parametros = new HashMap(); parametros.put("codigoConta", codigoConta); // caminho do meu sub-relatório parametros.put("SUBREPORT_DIR", "\"/WEB-INF/Relatorios/Contabilidade/testeReport_subreport1.jasper\""); bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametros, conn); 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(); } } catch (JRException ex) { ex.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { //connection.close(); } }
Mensagens: 1
Participantes: 1