Generando informes de Jasper a partir de varios modelos
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:

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.
Artículos relacionados
Desarrollador
Traducciones e información del usuario en los informes Jasper
El módulo `jasper_reports` incorpora un campo de relación virtual de usuario para que los informes accedan a los datos de quien los ejecuta, incluso cuando el documento no está relacionado con una empresa. También permite diseñar y previsualizar traducciones en iReport mediante `i18ngroovy`, las bibliotecas necesarias y las funciones `tr()`.
ERP y Negocio
Informes contables con Jasper
El módulo `account_jasper_report` ofrece informes de Diario, Sumas y Saldos, Libro Mayor y Registro de IVA para OpenERP v6. Según el artículo, reduce drásticamente el tiempo de generación de informes contables y requiere la última versión de `jasper_reports`.
Desarrollador
jasper_reports NG
jasper_reports NG mejora el rendimiento de los informes al evitar reinicios repetidos de la máquina virtual de Java y acelerar hasta un 10 % los informes basados en XML. También amplía la localización con campos traducibles, parámetros, formas plurales y selección de configuración regional, además de herramientas para extraer y preparar traducciones.