Subreports y Datasources raros
JasperReports puede ser medio tricky de configurar cuando tenemos muchos subreports con distintos datasources.
Supongamos que tenemos un reporte Re1 y un subreporte SRe2. Como no somos unos crotos que tiran dos selects y arman un reporte directo de la bd vamos a armar los correspondientes beans para alojar cada una de las “filas” del reporte Re1 y el subreporte SRe2. Usar un JRBeanArrayDataSource para pasarle los datos a un reporte es la mejor opcion para tener flexibilidad suficiente que no nos da un datasource comun. Pasarle el JRBeanArrayDataSource al RE1 es facil, pasarle un JRBeanArrayDataSource al SRe2 es… tambien bastante facil pero como tengo una memoria privilegiadamente corta ahi van los pasos:
1- En Re1 agregar un parameter del tipo JREBeanArrayDataSource por ejemplo “data1″.
2- Cuando agregamos el subreport SRe2 a Re1 hay que modificar los parametros del subreport cambiando el “Use datasource expression” por $P{data1}. Esto va a bindear el datasource que le pasemos como parametro al Re1 en “data1″ con el datasource que usara SRe2 para renderear el reporte. Siempre y cuando sean consistentes los fields y las propiedades de los beans obvio.
3- Desde Java cuando vamos a fillear el form creamos el JRBeanArrayDataSource para el Subreport Sre2 y lo metemos en el HashMap con los demas parametros para el Re1.
Magia!
JRBeanArrayDataSource subdataSource = new JRBeanArrayDataSource(miArrayBean);
hashMap.put("dataGrafico",subdataSource);
Magia!
November 29, 2007 | En Uncategorized | No hay comentarios