Relatório de 1000 páginas

Boa tarde pessoal!

É o seguinte …

Estou convertendo um sistema de ASP para JAVA (JSP). Meu problema está relacionado com a emissão de relatórios. Estou utilizando jasper reports e tudo tem funcionado direitinho com a seguinte exceção:

Tenho alguns relatórios que possuem mais de 1000 páginas. Em ASP utilizo o crystal reports. O crystal (no ambiente web) não envia o relatório para o browser de uma só vez, mas em partes, ou seja, se uma listagem possui 1000 páginas, ele manda apenas a primeira página. Se o usuário paginar o relatório o servidor manda a página seguinte e assim por diante. Um controle activex é instalado no browser para que este mecanismo funcione. Isto nos dá uma tranquilidade muito grande pois não temos que nos preocupar com o tamanho do relatório pois do lado cliente o browser nunca terá que armazenar todo o relatório e no servidor o crystal gerencia a memória utilizada muito bem. Outro ponto positivo é o tempo: nenhum relatório demora demais para ser emitido.

Com o jasper reports estou utilizando o formato PDF para visualização. Com os relatórios menores não há problema algum mas testando algumas listagens maiores percebi que o consumo de memória do servidor é muito grande. Na maioria das vezes (95%) o TOMCAT acusa falta de memória e não completa a execução do relatório. Nas pouquíssimas vezes que o relatório foi emitido a demora foi muito grande.

Existe algum recurso do próprio jasper reports ou algum framework que faça algo parecido com o crystal ? se não: qual a melhor forma (em java) de se contornar este problema ?

Valeu!

Olá

Ao invés do ActiveX, use uma applet assinada que busca os pedaços do relatório separados no servidor.

[]s
Luca

Desculpe a thread nada a ver, mas, quem diabos lê um relatório de 1000 páginas?

Daniel,
acredite… alguns usuários fazem isso e não abrem mão!

Luca,
não entendi, você está dizendo que este recurso já existe no jasper utilizando-se uma applet ? ou devo utilizar uma applet para implementar este recurso eu mesmo ?

Olá

Não, estou dizendo que seu programa servidor pode partir o super relatório em tantos relatórios jasper como melhor lhe aprouver e que a applet deve buscar no servidor cada jasperzinho e vai imprimindo um por um exatamente como faz o ActiveX.

Daniel, ler mil páginas? Nem se fosse 100 uma pessoa só leria. Mas imagine que o relatório todo são extratos de milhares de clientes de um banco. Então neste caso muitas páginas seriam lidas (por pessoas diferentes).

[]s
Luca