# Descripción General

El proceso **FinReport** es el motor principal para la generación de reportes financieros personalizados en iDempiere/Lirion (como el Balance General, Estado de Resultados, etc.). Este proceso lee definiciones dinámicas de filas y columnas, consolida los montos contables desde el diario real y genera la salida lista para impresión o exportación.

> **Funcionamiento del Motor:** A diferencia de los informes contables rígidos, FinReport permite definir estructuras complejas en las ventanas de Configuración de Reportes (PA\_Report), aplicando cálculos matemáticos entre columnas, porcentajes de participación y expansiones jerárquicas dinámicas.

## Flujo de Ejecución Técnico

El proceso sigue los siguientes pasos durante su ejecución en el servidor:

1. **Inicialización:** Carga la definición del reporte (`PA_Report`) utilizando el ID del registro seleccionado y calcula los periodos contables basados en el calendario y offsets definidos.
2. **Limpieza y Preparación:** Inserta filas vacías temporales en la tabla de base de datos `T_Report` correspondientes a la estructura de líneas configurada (`PA_ReportLine`).
3. **Consolidación Contable:** Consulta los registros de transacciones contables acumulando saldos de débito y crédito. Si se especifica un Cubo de Reportes (`PA_ReportCube`), consulta `Fact_Acct_Summary`; de lo contrario, lee directamente de `Fact_Acct`.
4. **Cálculos Dinámicos:** Procesa fórmulas matemáticas definidas para columnas, porcentajes de líneas y cálculos acumulativos.
5. **Formateo y Renderizado:** Crea o actualiza dinámicamente un formato de impresión (`MPrintFormat`) personalizado con los anchos y estilos adecuados para las columnas calculadas, y limpia de la tabla `T_Report` las líneas marcadas como no imprimibles.