Foros del Web » Programación para mayores de 30 ;) » Java »

enlazar jsp con jrxml

Estas en el tema de enlazar jsp con jrxml en el foro de Java en Foros del Web. Buenas! Tengo un informe con un subinforme. Ambos están generados con iReport. El informe padre no es más que un contenedor para el subinforme. El ...
  #1 (permalink)  
Antiguo 12/03/2009, 05:19
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 9 meses
Puntos: 0
enlazar jsp con jrxml

Buenas! Tengo un informe con un subinforme. Ambos están generados con iReport. El informe padre no es más que un contenedor para el subinforme. El subinforme es una otra plantilla que se tiene que utilizar tantas veces como sea necesario. En jsp obtengo los datos para cada subinforme con un for y tengo un mapa de mapas de parámetros. Ya he conseguido relacionar mi mapa de mapas con las plantillas jrxml. Ahora necesito relacionar los datos que obtengo para cada subinforme. Cuando solo hay un informe he visto que el DataSource se genera a partir de un ArrayList que contiene los datos, pero ¿qué hay cuando necesito pasar los datos a subinformes? Espero que alguien sepa ayudarme. Este tema está muy poco documentado. Gracias adelantadas.

Última edición por jessifb88; 16/03/2009 a las 06:07
  #2 (permalink)  
Antiguo 19/03/2009, 05:16
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 9 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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.