jasper-reports
Utiliser des sous-rapports
Recherche…
Paramètres
| Paramètre | Détails |
|---|---|
| parametersMapExpression | La carte avec les paramètres. Non requis |
| sous-rapportParamètre | La paire de nom et de valeur (définie avec subreportParameterExpression ). Non requis Plusieurs paramètres peuvent être transmis au sous-rapport |
| connectionExpression | Connexion pour obtenir des données. Non requis |
| dataSourceExpression | Expression pour transmettre la source de données. Non requis |
| sous-rapportExpression | Le chemin d'accès / URI du sous-rapport ou même l'objet JasperReport. Non requis |
| returnValue | La paire de nom et de valeur. Non requis Plusieurs valeurs peuvent être renvoyées du sous-rapport au rapport principal |
Remarques
Les sous-rapports peuvent être utilisés pour créer des rapports complexes. La réutilisation des rapports existants est un autre objectif de l'utilisation des sous-rapports.
Le sous-rapport sera affiché dans le cadre du rapport maître en cas d'utilisation de l'élément
<subreport>.La valeur du paramètre subreportExpression est différente pour l'utilisation sur JasperReports Server ou simplement par le framework JasperReports (certaines API utilisant ou utilisant IDE).
Pour JasperReports Server, cela ressemble à:
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>Pour utiliser uniquement le moteur JasperReports :
<subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>La grande explication de @AndreasDietrich peut être trouvée sur JasperServer: Impossible de localiser le message d’ exception de sous-rapport
Pour certaines raisons, le sous-rapport peut être utilisé comme rapport commun - sans appeler depuis le rapport principal (avec l'aide de l'élément
<subreport>). Le sous-rapport est toujours un rapport.
Passer la connexion au sous-rapport; retourne les valeurs au rapport principal
Ceci est un extrait du rapport principal. Deux paramètres et la connexion (par exemple, jdbc ) passent au sous-rapport. Une valeur est renvoyée du sous-rapport au rapport principal, cette valeur ( variable ) peut être utilisée dans le rapport principal
<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>
Transmission de données au sous-rapport
Ceci est un extrait du rapport principal. La source de données est transmise au sous-rapport à l'aide du constructeur 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>