jasper-reports
Korzystanie z podraportów
Szukaj…
Parametry
| Parametr | Detale |
|---|---|
| parametersMapExpression | Mapa z parametrami. Nie wymagane |
| subreportParameter | Para nazwy i wartości (zestaw z subreportParameterExpression ). Nie wymagane Kilka parametrów można przekazać do podraportu |
| connectionExpression | Połączenie do pobierania danych. Nie wymagane |
| dataSourceExpression | Wyrażenie do przekazywania źródła danych. Nie wymagane |
| subreportExpression | Ścieżka / identyfikator URI podraportu, a nawet obiekt JasperReport. Nie wymagane |
| returnValue | Para nazwy i wartości. Nie wymagane Kilka wartości można zwrócić z podraportu do raportu głównego z powrotem |
Uwagi
Podraporty można wykorzystywać do konstruowania złożonych raportów. Ponowne wykorzystanie istniejących raportów to kolejny cel korzystania z podraportów.
Podraport zostanie pokazany jako część raportu głównego w przypadku użycia elementu
<subreport>.Wartość parametru subreportExpression jest różna w przypadku używania na serwerze JasperReports lub po prostu w ramach struktury JasperReports (niektóre interfejsy API używają lub używają w IDE).
W przypadku serwera JasperReports wygląda to następująco:
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>Do korzystania tylko z silnika JasperReports :
<subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>Świetne wyjaśnienie @AndreasDietrich można znaleźć na stronie JasperServer: Nie można znaleźć postu dotyczącego wyjątku dotyczącego podraportu
Z niektórych powodów podraport może być używany jako wspólny raport - bez wywoływania z raportu głównego (za pomocą elementu
<subreport>). Podraport jest zawsze raportem.
Przekazywanie połączenia do podraportu; zwraca wartości z powrotem do raportu głównego
To jest fragment raportu głównego. Dwa parametry i połączenie (na przykład jdbc ) są przekazywane do podraportu. Jedna wartość jest zwracana z podraportu z powrotem do raportu głównego, tej wartości ( zmiennej ) można użyć w raporcie głównym
<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>
Przekazywanie danych do podraportu
To jest fragment raportu głównego. Źródło danych jest przekazywane do podraportu za pomocą konstruktora net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
<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>