Ist JasperReports die geeignete Lösung, um Berichte in einer Webanwendung anzuzeigen?

9

Wir möchten Berichte erstellen, die entweder als HTML-Seiten in eine Web-App eingebettet oder als pdf herunterladbar sind. Daher stieß ich auf JasperReports , weil es dachte, dass es diese Anforderungen erfüllen würde.

Momentan gehen wir davon aus, dass unser Bericht etwa 50-100 Seiten umfassen wird, bestehend aus fast nur Histogrammen und einigen Tabellen. Die Daten werden durch einige teure Abfragen aus unserer DB abgerufen.

Nachdem ich es den ganzen Tag über bewertet habe, habe ich einige Zweifel in Bezug auf Web-App-Aspekte.

1) Paginierung: Natürlich möchte ich nicht alle Seiten auf einer einzigen Webseite anzeigen. Wir brauchen etwas wie Paginierung. Aber JasperReports scheint diesen Ansatz nicht zu unterstützen. Die Wepp-Demo, die mit JasperReports geliefert wird, skizziert den Weg: Ich muss einen JasperPrint erstellen, der bereits der vollständige Bericht ist. Zuordnen von nicht benötigtem Speicher und Ausführen der teuren Abfragen. Dann könnte ich eine einzelne Seite anzeigen. Aber dies immer wieder für jede Seite zu tun, scheint mir keine richtige Lösung zu sein.

2) Wie oben erwähnt, besteht unser Bericht hauptsächlich aus Diagrammen. Bilder werden beim Exportieren von JasperPrint in das Ausgabeformat generiert. Wenn ich alles richtig verstehe, ist das ImageServlet , das mit JR geliefert wird, in der Lage, diese Bilder aber abzurufen

i) Lesen der generierten Bilder aus dem Dateisystem
 ii) der Exporteur hat sie in der Sitzung gespeichert (daher im Speicher).

Da ich denke, dass wir viele Bilder haben werden, ist das keine Option, wenn wir den Speicherbedarf der Webapp niedrig halten wollen. Auf der anderen Seite ist es auch nicht die beste Idee, das Dateisystem mit Dateien zu überfluten. Löscht es die Dateien irgendwann?

Habe ich etwas falsch gemacht? Ist mein Verständnis korrekt?

    
Lars 12.03.2009, 19:24
quelle

2 Antworten

3

Seitennummerierung

Es ist eine Art von Service, wie Ihr Seitenaufbau implementiert wird! PDF ist ein eigenständiges Ausgabeformat für Druckprobleme. Es kann nicht mehr Daten vom Server lesen (ohne Web-Services und Reader Extensions). Sie können also festlegen, dass JasperReports nur eine Teilmenge Ihrer Daten zum Paging verwenden soll.

Wenn Sie Datasets in JasperReports definieren, können Sie sie wiederverwenden, ohne dass nicht erforderlicher Speicher zugewiesen wird.

Bilder

Wenn Sie Bilder in Ihren Berichten erstellen und den Speicherbedarf gering halten möchten, schreiben Sie einen Balancing-Algorithmus, der die Bilder generiert, wenn die Serverlast unter einem bestimmten Wert liegt (dies kann ein dynamischer Wert aus dem Mittelwert der Last des letzten Tages sein).

Benötigen Sie eine Echtzeit-Erstellung der Bilder? Wenn die Bilder von einem Servlet erstellt wurden, werden sie in den Speicher geladen. Eine Java-App. kann die Bilder an den ReportGenerator übergeben.

  

Bilder können aus dem Speicher, von der Festplatte oder von einer URL geladen werden   sehen; Jasper Reports Buch P: 170

Die Bilder sollten niemals in der HTTP_SESSION gespeichert werden! Dies ist eine vollständige Antipattern, die Speicherblähung verursacht.

    
Martin K. 12.03.2009 19:49
quelle
0

Nein. Sie werden alle möglichen Probleme haben.

Ich denke, dass Sie Ihre Berichte einfach in XHTML / CSS erstellen können, und wenn Sie PDF-Rendering benötigen, verwenden Sie einfach Fliegende Untertasse XHTML-Renderer.

    
Alexander Temerev 12.03.2009 19:53
quelle

Tags und Links