Definir el formato mediante vista XML
Al igual que las vistas utilizadas en el Core mediante los ExtendedController, el plugin ExtendedReport añade un nuevo tipo de vista que utiliza archivos XML para definir el formato de impresión del informe, mediante etiquetas y atributos en las etiquetas.
El informe utiliza un sistema parecido a los ExtendedController para la visualización de los datos, utilizando distintos widgets según el tipo de información o representación gráfica (texto, linea, imágen, etc) que se desea en cada momento.
Al igual que las vistas XML, los archivos con la definición del informe deben ubicarse en la carpeta XMLView, donde crearemos una carpeta Report donde iremos guardando los distintos informes que creemos.
Definición de un informe
Todo informe debe tener una estructura, definida mediante etiquetas xml, siendo estas obligatorias. La estructura está organizada por grupos, siendo jerárquica dentro de cada grupo, es decir descendiente en niveles o de padre a hijos.
report
config
group
header
column + widget
detail
column + widget
footer
column + widget
Etiquetas principales
Cada una de las siguientes etiquetas son obligatorias para el correcto funcionamiento del informe.
- report: Etiqueta base o principal de la que parten el resto de etiquetas. No tiene ningún atributo.
- config: Etiqueta que agrupa la configuración general del informe (tipo de papel, fuente de texto, orientación). No tiene ningún atributo.
- group: Cada uno de los grupos de datos del informe. El informe puede tener más de un grupo por lo que es obligatorio incluir un atributo name para identificarlo, y cuyo valor debe ser único. Los grupos se imprimen de manera secuencial a como están definidos.
- header: (debe incluirse dentro de group) Define la cabecera del grupo. Se imprime cada comienzo de página.
- detail: (debe incluirse dentro de group) Define el detalle de información del grupo. Se imprime por cada registro de datos.
- footer: (debe incluirse dentro de group) Define los datos del pie de grupo. Se imprime cada final de página.