Desarrollador

Generando informes de Jasper a partir de varios modelos

1 min de lectura

Resumen rápido

El artículo explica cómo crear informes Jasper que parten de un modelo pero necesitan mostrar datos relacionados de otros modelos. La solución consiste en utilizar un subinforme y configurar la propiedad `OPENERP_PATH_PREFIX` con el recorrido desde el modelo principal hasta el del subinforme; en el ejemplo, el prefijo es `order_line/product_id`.

Contenidos

Uso del módulo jasper_reports para informes anidados

Cuando necesite crear un nuevo informe usando el módulo jasper_reports, debe utilizar como modelo base el de la pantalla donde desea que se muestre el botón.

Por ejemplo, si desea crear un informe que muestre toda la información de un producto, incluida su imagen, en un folleto, el modelo será product.product y el botón del informe se mostrará en ese modelo.

¿Qué ocurre si desea un botón en un presupuesto para imprimir los folletos de todos los productos del presupuesto actual? Hasta ahora había tres posibilidades: crear un informe nuevo con sale.order como modelo base, crear un asistente o crear un botón de relación que abra una pestaña nueva con todos los productos del presupuesto.

Hemos implementado una nueva forma de resolver este problema mediante Jasper Reports. Cree un informe nuevo con sale.order como modelo base, inserte un subinforme que incluya el informe del folleto y añada la propiedad OPENERP_PATH_PREFIX para especificar la ruta desde el modelo actual (sale.order) hasta el modelo del subinforme (product.product). En este ejemplo, la ruta prefijo es order_line/product_id.

La siguiente captura muestra dónde añadir la propiedad con iReport:

Captura de pantalla

Preguntas frecuentes

¿Qué modelo debe utilizarse como base para un informe nuevo con `jasper_reports`?

Debe utilizarse como modelo base el de la pantalla donde debe aparecer el botón del informe. Por ejemplo, si el botón ha de aparecer en un producto, el modelo base es product.product.

¿Cómo se pueden imprimir los folletos de todos los productos de un presupuesto?

Hay que crear el informe con sale.order como modelo base e insertar un subinforme que incorpore el informe del folleto de producto.

¿Para qué sirve `OPENERP_PATH_PREFIX`?

Permite indicar el recorrido desde el modelo actual hasta el modelo del subinforme para que Jasper pueda acceder a los datos relacionados. En el ejemplo del presupuesto, el recorrido es order_line/product_id.

¿Qué alternativas había antes de este enfoque?

Se podía crear un informe nuevo basado en sale.order, crear un asistente o añadir un botón de relación que abriese una pestaña nueva con todos los productos del presupuesto.