So verwenden Sie dieselbe Datenquelle zweimal in JasperReports / iReport

9

Ich versuche herauszufinden, wie man mit einem Diagramm am besten Berichte erstellt, und dann eine Tabelle, die denselben Datensatz darstellt. Ich muss die Positionierung der Zusammenfassung unten überwinden, also beabsichtige, Unterberichte und Tabellenunterberichte zu verwenden. Ich experimentiere mit zwei Tabellen und einem Diagramm in einem Detailband.

Wenn ich datasourceexpression für $P{REPORT_DATA_SOURCE} festlege, zeigt das Diagramm nur Daten an (vermutlich das erste Element des Unterreporttyps) und die Tabellen sind leer. Scheint die Daten können nur einmal verbraucht werden?

Wenn ich ein Dataset verwende, um die Datenbank abzufragen, funktioniert es, aber es führt die Abfrage dreimal für jede Tabelle / jedes Diagramm aus. Das wird ein massiver Overhead sein.

Offensichtlich mache ich das nicht richtig, aber ich kann keine Beispiele finden, die den gleichen Datensatz mehr als einmal verwenden.

    
KCD 28.09.2011, 01:32
quelle

2 Antworten

3

Es gibt keine einfache Antwort, also habe ich eine Feature-Anfrage gestellt Ссылка

Die vorgeschlagenen Problemumgehungen waren:

  • Implementieren eines benutzerdefinierten Abfrage-Executers zum Abrufen von Daten aus einer zwischengespeicherten Datenquelle
  • generiert eine zurückspulbare Datenquelle basierend auf der abgerufenen Ergebnismenge

Danke an sanda aka shertage im jasperforge forum für diese Vorschläge.

    
KCD 11.10.2011, 02:11
quelle
0

Eine alternative Lösung, Klonen der Datenmenge:

Ссылка

Cloner cloner = neuer Cloner ();

ArrayList clone = cloner.deepClone (getSomeArrayList ());

final JRDataSource ds = neue JRBeanCollectionDataSource (AnotherBean);

HashMap-Parameter = new HashMap ();

parameters.put ("PARAM_A", neue JRBeanCollectionDataSource (getSomeArrayList ()));

parameters.put ("PARAM_B", neue JRBeanCollectionDataSource (Klon));

    
Fredy Bello 07.11.2012 20:12
quelle

Tags und Links