jasper-reports
Använda subrapporter
Sök…
parametrar
| Parameter | detaljer |
|---|---|
| parametersMapExpression | Kartan med parametrar. Inte nödvändig |
| subreportParameter | Paret med namn och värde (inställt med subreportParameterExpression ). Krävs inte . Flera parametrar kan skickas till delrapport |
| connectionExpression | Anslutning för att få data. Inte nödvändig |
| dataSourceExpression | Uttryck för att passera datakälla. Inte nödvändig |
| subreportExpression | Delrapportens väg / URI eller till och med JasperReport-objekt. Inte nödvändig |
| returvärde | Paret med namn och värde. Krävs inte . Flera värden kan returneras från delrapport till masterrapport tillbaka |
Anmärkningar
Delrapporter kan användas för att konstruera komplexa rapporter. Återanvändning av befintliga rapporter är ett annat mål för att använda delrapporter.
Delrapporten kommer att visas som en del av
<subreport>om du<subreport>elementet<subreport>.Värdet på subreportExpression- parametern är olika för att använda på JasperReports Server eller bara med JasperReports- ramverket (en del API som använder eller använder i IDE).
För JasperReports Server ser det ut som:
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>För användning med bara JasperReports- motor:
<subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>Den fantastiska förklaringen från @AndreasDietrich kan hittas på JasperServer: Det går inte att hitta undantagsstället för underrapporten
Av vissa skäl kan delrapporten användas som en gemensam rapport - utan att ringa från huvudrapporten (med hjälp av
<subreport>). Delrapporten är alltid en rapport.
Överför anslutning till delrapport; returnera värden tillbaka till huvudrapporten
Detta är en bit av huvudrapporten. Två parametrar och anslutningen (till exempel jdbc ) övergår till delrapporten. Ett värde returneras från delrapporten tillbaka till huvudrapporten, detta värde ( variabel ) kan användas i huvudrapporten
<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>
Vidarebefordrar databas till delrapport
Detta är en bit av huvudrapporten. Datakällan skickas till delrapporten med hjälp av net.sf.jasperreports.engine.data.JRBeanCollectionDataSource- konstruktör
<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>