2009-03-12 13 views
9

Queremos generar informes incrustados como páginas html en una aplicación web o descargables como pdf. Por lo tanto, me encontré con JasperReports porque pensaba que cumpliría estos requisitos.¿JasperReports es la solución adecuada para mostrar informes en una aplicación web?

Actualmente suponemos que nuestro informe tendrá aproximadamente 50-100 páginas, que consiste en casi solo histogramas y algunas tablas. Los datos son recuperados por algunas consultas costosas de nuestro DB.

Después de evaluarlo todo el día tengo varias dudas con respecto a los aspectos de la aplicación web.

1) Paginación: Por supuesto que no quiero mostrar todas las páginas en una sola página web. Necesitamos algo así como paginación. Pero JasperReports parece no ser compatible con este enfoque. La demo WEPP, que viene con JasperReports , bocetos el camino a seguir: Tengo que crear un JasperPrint, que ya es el informe completo, la asignación de memoria no requerida y que ha realizado las consultas caros. Entonces podría mostrar una sola página. Pero hacer esto una y otra vez para cada página no aparece como una solución adecuada para mí.

2) Como se mencionó anteriormente, nuestro informe consistirá principalmente en diagramas. Las imágenes se generan durante la exportación de JasperPrint a su formato de salida. Si lo entiendo todo correcto, el ImageServlet, que viene con JR, es capaz, pero recuperar estas imágenes sean

i) La lectura de las imágenes generadas por el sistema de archivos
ii) el exportador ha almacenado en la sesión (por lo tanto, en la memoria).

Dado que creo que tendremos muchas imágenes ii) no es una opción, si queremos mantener la huella de memoria de la webapp baja. Pero, por otro lado, inundar el sistema de archivos con archivos tampoco es la mejor idea que podría imaginar. ¿Borra los archivos alguna vez?

¿Me salió algo mal? ¿Mi comprensión es correcta?

Respuesta

3

paginación

Es una especie de servicio de su diseño como su pageing implementado ist! PDF es un formato de salida independiente para problemas de impresión. No puede leer más datos del servidor (sin servicios web y extensiones de lector). De modo que puede definir que JasperReports solo debe incluir un subconjunto de sus datos para la búsqueda.

Si define datasets en JasperReports, puede reutilizarlos sin asignar memoria no requerida.

Imágenes

Si desea que las imágenes en sus informes y mantener su huella de memoria baja, escribe un algoritmo de equilibrio que genera las imágenes cuando la carga del servidor está en un valor especificado (puede ser un valor dinámico de la promedio de la carga del último día).

¿Necesita la creación en tiempo real de las imágenes?Si las imágenes fueron creadas por un servlet, se cargarán en la memoria. Una aplicación de Java. puede pasar las imágenes al ReportGenerator.

las imágenes se pueden cargar desde la memoria, desde el disco o desde una URL ver; Jasper Reports Book P: 170

¡Las imágenes nunca se deben guardar en la HTTP_SESSION! Este es un antipatrón total que causa la hinchazón de la memoria.

+0

buscando ese libro! ¡increíble! – frohiky

0

No. Tendrá toda clase de problemas.

Creo que solo puede generar sus informes en XHTML/CSS, y si necesita PDF, simplemente use Flying Saucer Render XHTML.

Cuestiones relacionadas