jasper-reports
Usando subinformes
Buscar..
Parámetros
| Parámetro | Detalles |
|---|---|
| parametersMapExpression | El mapa con parámetros. No requerido |
| subinformeParámetro | El par de nombre y valor (establecido con subreportParameterExpression ). No es necesario . Varios parámetros se pueden pasar al subinforme |
| expresión de conexión | Conexión para obtener datos. No requerido |
| dataSourceExpression | Expresión para pasar la fuente de datos. No requerido |
| subreportExpression | La ruta del subinforme / URI o incluso el objeto JasperReport. No requerido |
| retornoValor | El par de nombre y valor. No es necesario . Se pueden devolver varios valores del subinforme al informe maestro. |
Observaciones
Los subinformes se pueden usar para construir informes complejos. La reutilización de los informes existentes es otro objetivo del uso de subinformes.
El subinforme se mostrará como parte del informe maestro en caso de usar el elemento
<subreport>.El valor del parámetro subreportExpression es diferente para usar en JasperReports Server o simplemente por el marco de JasperReports (algunas API se usan o usan en IDE).
Para el servidor JasperReports parece:
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>Para usar solo con el motor JasperReports :
<subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>La gran explicación de @AndreasDietrich se puede encontrar en JasperServer: No se puede encontrar la publicación de excepción de subinforme
Por algunas razones, el subinforme se puede usar como un informe común, sin llamar desde el informe maestro (con la ayuda del elemento
<subreport>). El subinforme es siempre un informe.
Pasando la conexión al subinforme; devuelve los valores al informe maestro
Este es un fragmento del informe maestro. Dos parámetros y la conexión (por ejemplo, jdbc ) pasan al subinforme. Se devuelve un valor desde el subinforme al informe maestro, este valor ( variable ) se puede usar en el informe maestro
<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>
Pasar datasoure a subinforme
Este es un fragmento del informe maestro. El origen de datos se pasa al subinforme con la ayuda del constructor 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>