Informes y Documentos
Reports y DataItems
Dificultad: 8/10Los Reports (Informes) son los objetos más complejos de construir visualmente dentro de Business Central. Son los motores que generan los PDFs comerciales finales que verá el socio o cliente (facturas con logotipo, albaranes, listados contables mensuales a enviar).
La Arquitectura de un Report
Se dividen en dos capas totalmente distintas:
- El Dataset (El AL code): La programación en texto que decide *qué datos* exactos de base de datos extraemos, iteramos y preparamos. Es la cocina que recolecta los ingredientes.
- El Layout (El diseño visual Word/RDLC, HTML): Una vez los datos están compilados y limpios como variables separadas en memoria, se inyectan dentro de una plantilla vacía para que sean dibujados en un papel virtual con tablas y letras en negrita.
¿Qué es un DataItem?
Un DataItem es una tabla de origen que se usará en el informe. Al definir un Report en AL,
escribimos una serie de bloques DataItem.
Si yo quiero sacar un listado de "Todos Los Clientes", yo declaro el
DataItem(Customer; Customer). Automáticamente el motor coge a mi tabla `Customer` y empieza
a iterar una por una de forma implícita e invisible miles de veces. Por cada ciclo,
recoge las `column` (columnas o variables) que yo le ordené que publicase desde esa tabla, las etiqueta,
y las avienta al Layout para ser dibujadas de la nada en esa página.
dataset
{
// Lo que declare aquí, será un "bucle infinito" sobre los clientes
dataitem(Venta; "Customer")
{
// Solo quiero exportar a mi Word/PDF el Nombre de esta iteración. Nada más.
column(NombreCliente; "Name") { }
column(DeudaActual; "Balance (LCY)") { }
}
}