Relatórios com IReport e JasperReport 3ª Tentativa

0 respostas
anderson.bonavides

Pessoal, estou com problemas ao gerar relatórios com IReport. O relatório esta sendo gerado perfeitamente, mas na hora de abrir ele informa que o arquivo está corrompido. Alguém poderia me dar uma força para corrigir este problema?

Faço outra pergunta, qual seria a melhor forma, colocar a consulta no Ireport ou colocar através de um DataSource?

obs: não sei nenhuma das duas, fiz isto através de pesquisas na net!

public String gerarRelatorioGeralPorInscritos() throws Exception {

        try {
            Connection con = Connect.getConexao();
            con.createStatement();
            Statement stmt = con.createStatement();
            String sql = "SELECT * FROM tb_inscritos";
            ResultSet rs = stmt.executeQuery(sql);
            JRResultSetDataSource dataSource = new JRResultSetDataSource(rs);
            HashMap map = new HashMap();
            map.put("sql", sql);
            
            FacesContext context = FacesContext.getCurrentInstance();
            HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
            InputStream reportStream = context.getExternalContext().getResourceAsStream("/web/WEB-INF/relatorio/" + "RelatorioGeralPorInscritos.jasper");
            response.setContentType("application/pdf");
            response.setHeader("Content-disposition", "attachment;filename=" + "RelatorioGeralPorInscritos" + ".pdf"); 
            ServletOutputStream servletOutputStream = response.getOutputStream();
            
            try{
                JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, map, dataSource);   
            }finally{
                context.responseComplete();
                servletOutputStream.flush();
                servletOutputStream.close();     
            }
        


        } catch (Exception e) {
            System.out.println("NÃO FOI POSSIVEL EXIBIR O RELATÓRIO");
            e.printStackTrace();
        }
        return "Sucesso";
    }

Grato!

Criado 30 de outubro de 2008
Respostas 0
Participantes 1