Receber um objeto no iReport

4 respostas
L

Gente, será que é possível eu receber um objeto que construi (Firma -> Nome, CPF, etc…) em um relatório iReport?

Alguém sabe como fazer isso?

Abraço a todos!

4 Respostas

diogoprosoft

Sim vc vai no ireport no menu opções classpth adiciona o jar do projeto onde esta seu objeto…
depois vc vai no menu data query do relatório na aba fonte de dados vc coloca o endereco do classe que vc quer tipo com.pacotes.Action e depois e so adicionar no seu relatorio :smiley:

L

Obrigado diogo, consegui ler…

Para receber o objeto é igual a enviar um parâmetro comum?

Att.

diogoprosoft

Usa esse exemplo aqui para a sua classe

/////////////////////////////Relatorios/////////////////////////////        
        
        String pathJasper = getServlet().getServletContext().getRealPath("/ireport/") + "/";   
        String pathImages = getServlet().getServletContext().getRealPath("/ireport/") + "/";   
  
        String path = getServlet().getServletContext().getRealPath("/");   
        Map parametros = new HashMap();   
  
        parametros.put("SUBREPORT_DIR", pathJasper);   
        parametros.put("IMAGES_URI", pathJasper);   

       try {           
           JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaExtrato);           
           JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "/ExtratoParcelaCliente.jasper", parametros, ds);
            
            byte[] bytes = JasperExportManager.exportReportToPdf(impressao);
            byte[] arquivo = bytes;
            String nomeDoArquivo = "ExtratoParcelaCliente.pdf";
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment; filename=".concat(nomeDoArquivo));
            response.setContentLength(arquivo.length);
            ServletOutputStream sos = response.getOutputStream();
            sos.write(arquivo, 0, arquivo.length);
            sos.flush();
            sos.close();
            } catch (Exception e) {
            if(e.getClass().getSimpleName().equals("ClientAbortException")){
                    System.out.println("Documento cancelado");
            } else{
                    System.out.println("Outros");
            } 
            }

E no ireport para vc usar o objeto e só fazer assim: $F{nomeAtributo}

L

Boa Diogo, funcionou perfeitamente! muito obrigado isso será muito útil para mim.

Criado 2 de outubro de 2008
Ultima resposta 2 de out. de 2008
Respostas 4
Participantes 2