Hallo zusammen,
ich versuche mich momentan daran mit Java einen Report aus einer xml-Datenquelle zu erzeugen. Dazu habe ich miir iReport zu Hilfe genommen. Zunächst ging das auch alles ganz intuitiv, aber nun wo ich beim Thema subreports angelangt bin, komme ich nicht so recht weiter. Folgendes Problem:
Angenommen ich habe eine xml-Datei folgender Struktur(vereinfacht):
In iReport habe ich einen main report angelegt, in dem das xml-file als Datenquelle angegeben ist.
Im details band habe ich einen subreport (SubReport.jrxml) angelegt, dem ich als Datenquelle
So weit funktioniert auch noch alles, ich kann wie gewünscht über die b-elemente iterieren.
Nun habe ich einen weiteren subreport angelegt (SubSubReport.jrxml) und diesen versucht in SubReport.jrxml einzubetten.
Als Datenquelle habe ich diesmal
eine Fehlermeldung mit dem Inhalt
Aber woran liegt das, beim ersten Subreport hat er die JRXmlDataSource ja auch angenommen. Ich habe die Subreport-Einbindungen in beiden jrxml-Dateien verglichen und keinen relevanten Unterschied gefunden .
Hab ich da vielleicht irgendwo eine Einstellung vergessen, die bei Sub-Subreports nötig ist?
Oder hat vielleicht jemand ein Beispiel in dem eine xml-Datei als Datenquelle für verschachtelte subreports verwendet wird?
Vielen Dank im voraus!
ich versuche mich momentan daran mit Java einen Report aus einer xml-Datenquelle zu erzeugen. Dazu habe ich miir iReport zu Hilfe genommen. Zunächst ging das auch alles ganz intuitiv, aber nun wo ich beim Thema subreports angelangt bin, komme ich nicht so recht weiter. Folgendes Problem:
Angenommen ich habe eine xml-Datei folgender Struktur(vereinfacht):
<A>
<B>
<C></C>
<C></C>
</B>
<B>
<C></C>
</B>
</A>
In iReport habe ich einen main report angelegt, in dem das xml-file als Datenquelle angegeben ist.
Im details band habe ich einen subreport (SubReport.jrxml) angelegt, dem ich als Datenquelle
übergeben habe und als Ausdruck für den Unterreport((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/A/B")
.$P{SUBREPORT_DIR} +
"SubReport.jasper"
So weit funktioniert auch noch alles, ich kann wie gewünscht über die b-elemente iterieren.
Nun habe ich einen weiteren subreport angelegt (SubSubReport.jrxml) und diesen versucht in SubReport.jrxml einzubetten.
Als Datenquelle habe ich diesmal
übergeben und als Ausdruck für den Unterreport((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/B/C")
In iReport gibt es keine Fehlermeldungen, aber starte ich das Hauptscript mit meiner Applikation unter Eclipse, bekomme ich immer$P{SUBREPORT_DIR} + "SubSubReport.jasper".
eine Fehlermeldung mit dem Inhalt
Es sieht irgendwie so aus, als würde hier bei der einbindung des zweiten Subreports statt einer JRXmlDataSource eine JRSortableDataSource erwartet.Error evaluating expression...
net.sf.jasperreports.engine.data.JRSortableDataSource cannot be cast to net.sf.jasperreports.engine.data.JRXmlDataSource
at SubReport_1231424772481_482053.evaluate(SubReport_1231424772481_482053:173)
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186)
Aber woran liegt das, beim ersten Subreport hat er die JRXmlDataSource ja auch angenommen. Ich habe die Subreport-Einbindungen in beiden jrxml-Dateien verglichen und keinen relevanten Unterschied gefunden .
Hab ich da vielleicht irgendwo eine Einstellung vergessen, die bei Sub-Subreports nötig ist?
Oder hat vielleicht jemand ein Beispiel in dem eine xml-Datei als Datenquelle für verschachtelte subreports verwendet wird?
Vielen Dank im voraus!