jasper-reports
Unterberichte verwenden
Suche…
Parameter
| Parameter | Einzelheiten |
|---|---|
| parametersMapExpression | Die Karte mit Parametern. Nicht benötigt |
| UnterberichtParameter | Das Paar aus Name und Wert (mit subreportParameterExpression festgelegt ). Nicht erforderlich Mehrere Parameter können an den Unterbericht übergeben werden |
| connectionExpression | Verbindung zum Abrufen von Daten. Nicht benötigt |
| dataSourceExpression | Ausdruck für die Übergabe der Datenquelle. Nicht benötigt |
| subreportExpression | Der Pfad / URI des Unterberichts oder sogar das JasperReport-Objekt. Nicht benötigt |
| Rückgabewert | Das Paar Name und Wert. Nicht erforderlich Mehrere Werte können vom Unterbericht an den Hauptbericht zurückgegeben werden |
Bemerkungen
Unterberichte können zum Erstellen komplexer Berichte verwendet werden. Die Wiederverwendung vorhandener Berichte ist ein weiteres Ziel der Verwendung von Unterberichten.
Der Unterbericht wird als Teil des Hauptberichts angezeigt, wenn das Element
<subreport>verwendet wird.Der Wert des Parameters subreportExpression unterscheidet sich bei der Verwendung auf JasperReports Server oder nur durch das JasperReports- Framework (einige APIs verwenden oder in IDE verwenden).
Für JasperReports Server sieht das so aus:
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>Für die Verwendung von nur JasperReports Engine:
<subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>Die großartige Erklärung von @AndreasDietrich finden Sie unter JasperServer: Der Unterbericht kann nicht gefunden werden
Aus einigen Gründen kann der Unterbericht als gemeinsamer Bericht verwendet werden - ohne Aufruf des
<subreport>(mithilfe des<subreport>-Elements). Der Unterbericht ist immer ein Bericht.
Übergabe der Verbindung zum Unterbericht; Rückgabewerte zurück zum Masterbericht
Dies ist ein Ausschnitt des Hauptberichts. Zwei Parameter und die Verbindung (z. B. jdbc ) werden an den Unterbericht übergeben. Ein Wert wird aus dem Unterbericht an den Hauptbericht zurückgegeben. Dieser Wert ( Variable ) kann im Hauptbericht verwendet werden
<subreport>
<reportElement x="0" y="80" width="200" height="100"/>
<subreportParameter name="someSubreportParameter">
<subreportParameterExpression><![CDATA[$P{someMasterReportParamter}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="anotherSubreportParameter">
<subreportParameterExpression><![CDATA["Some text - constant value"]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<returnValue subreportVariable="someVariableInSubreport" toVariable="someVariableInMasterReport"/>
<subreportExpression><![CDATA["$P{SUBREPORT_DIR} + "subreport.jasper"]]></subreportExpression>
</subreport>
Datenübergabe an Unterbericht übergeben
Dies ist ein Ausschnitt des Hauptberichts. Die Datenquelle wird mithilfe des Konstruktors net.sf.jasperreports.engine.data.JRBeanCollectionDataSource an den Unterbericht übergeben
<field name="someFieldWithList" class="java.util.List"/>
<!-- ...... -->
<subreport>
<reportElement x="0" y="0" width="200" height="70"/>
<parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
<dataSourceExpression><![CDATA[net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{someFieldWithList})]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "subreport.jasper"]]></subreportExpression>
</subreport>