Ireport & JasperReport Problema sério

7 respostas
E

Bom dia Amigos do PJ.

Estou com um problema sério, ou idiota, alguma coisa esta acontecendo com o meu relatório, eu acho que quem ja utilizou está ferramenta já passou por isso, o que está acontecendo é no detail do meu relatório simplesmente os campos so fica com o primeiro registro da tabela, o detail nao atualiza, por exemplo:
O relatório tem 30 registros.
E no campo detail ele repete os 30 registros sendo com as informações do primeiro registro, ele repete 30 vezes os dados do primeiro registro.

Deve ser alguma coisa boba que eu estou esquecendo de fazer.

Por favor preciso de uma Luz.

:oops: :oops: :cry: :cry: :oops: :oops:

Eduardo

7 Respostas

F

Opa Velho,

Posta o XML do Jasper e a consulta que está fazendo.

Abs

C

Vc tem certeza que a sua collection ta com 30 registros diferentes ?

E

Tenho sim, por eu ja visualizei a mesma consulta via JSP. o XML eu muito grande.

Eu vou postar o meu servlet. SE vc quiser eu posso te enviar Renato os arquivos.
public class CriarDemo extends HttpServlet {
      
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
        String layout = getServletContext().getRealPath("/relatorio/classic2.jasper");
        Map paramentros = new HashMap();
        paramentros.put("Titulo","Demonstrativo");
        
        int confid = ( new Integer( request.getParameter("confid")));
        
        DemonstrativoFacade fc = new DemonstrativoFacade();
        List <Demonstrativo> resultado = fc.getDemonstrativo(confid);
        
        byte[] relatorio = new byte[0];
        
        try {
            
            relatorio = JasperRunManager.runReportToPdf(layout,paramentros, new JRBeanCollectionDataSource(resultado));
                    
        } catch (JRException ex) {
            ex.printStackTrace();
        }
        
        
        response.setContentType("application/pdf");
        response.setContentLength(relatorio.length);
        
        response.getOutputStream().write(relatorio,0,relatorio.length);
        response.getOutputStream().flush();
        response.getOutputStream().close();
    }
}

E desta forma que faço o arquivo PDF.
E o collection eu uma List que vem de uma consulta via Hibernate.

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

C

Tp… faz o seguinte… pela a sua classe ta certo ?
e c tu garante q a tua collection ta OK? tenta usar um subrelatorio na aba detail pra ver q acontece :D, ok ?

E

Ratinho, O problema eh + serio, vc tinha falado que mim teste a saida no List,on, o hibernate esta colocando no List sempre a mesma linha. Ele esta populando o List sempre com o mesmo registro.
Eu te faço uma pergunta o List tem restrição de tamanho?
Porque a minha tabela tem muito campos. Será que é isso que o List não esta conseguindo trabalhar direito.

desde já agradeço a sua atenção.

Eduardo

C

Java se der problema de estouro de memória, é lançada uma Exception em RunTime. Antes de tentar continuar o seu trabalho de relatórios, de uma olhada na classe resonsável por fazer o select no seu BD, mas dica… trabalhe com poucos registros inicialmente nos seus testes, vai ajudar muito vc a descorbrir ond esta o seu erro.
Entao da uma revisada no seu mapeamento .xml pra ver c ta tudo ok? aqui no PJ temos moderadores que entendem bem de hibernate, e podemos te ajudar c tu tiver alguma dúvida OK ?

E

Valeu Rafael muito obrigado pela ajuda, vou ter resolver o problema esta no hibernate mesmo.

um abraço.

Eduardo

Criado 1 de junho de 2006
Ultima resposta 1 de jun. de 2006
Respostas 7
Participantes 3