Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/03/2009, 05:16
jessifb88
 
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.