JasperReports - Subreport-DataSource

In einem Projekt hatte ich jetzt den Fall, dass ich die vollständige Datasource des Parent Reports an ein Subreport übergeben musste.

JasperReports hat einen definierten Parameter REPORT_DATA_SOURCE der die aktuelle DataSource für den Report hält. Leider funktioniert es nicht, wenn man versucht den Parameter direkt als dataSourceExpression zu übergeben. Für den Subreport benötigt man eine neue DataSource. Hierfür ist die Methode cloneDataSource() gedacht. Diese erzeugt einen Clone der Parent DataSource und kann dann dem Subreport übergeben werden.

<subreport isUsingCache="false">
<reportElement x="0" y="0" width="595" height="842"/>
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRBeanCollectionDataSource) $P{REPORT_DATA_SOURCE}).cloneDataSource()]]></dataSourceExpression>
<subreportExpression><![CDATA["reporting/details.jasper"]]></subreportExpression>
</subreport>

Comments