19/03/2009, 05:16
|
| | Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 16 años, 5 meses Puntos: 0 | |
Respuesta: enlazar jsp con jrxml Lo conseguí.
Con el siguiente código llamo desde el report padre al subreport.
<subreport isUsingCache="true">
<reportElement
x="0"
y="0"
width="842"
height="204"
key="subreport-1"/>
<parametersMapExpression><![CDATA[new java.util.HashMap($P{MAPA})]]></parametersMapExpression>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRMapCollectionDa taSource($P{LISTA_PARAMETROS})]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "\\ht.jasper"]]></subreportExpression>
</subreport>
MAPA es el mapa de parámetros que utilizaré en el subreport.
LISTA_PARAMETROS es la colección que utilizaré en el subreport, que se pasa como dataSource.
MAPA y LISTA_PARAMETROS son a su vez parámetros de un mapa principal que paso a la plantilla padre desde jsp:
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
Donde jasperReport es la plantilla (JasperReport jasperReport = JasperCompileManager.compileReport(plantilla);) y parameters es el mapa principal en el que envío los parámetros para el subreport y los propios parámetros del informe principal.
En mi caso necesité hacer subreports anidados. La manera de seguir pasando los parámetros a los anidados es anidando los parámetros y datos necesarios en los mapas de parámetros y las colecciones. |