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:
- 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. - Limpieza y Preparación: Inserta filas vacías temporales en la tabla de base de datos
T_Reportcorrespondientes a la estructura de líneas configurada (PA_ReportLine). - 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), consultaFact_Acct_Summary; de lo contrario, lee directamente deFact_Acct. - Cálculos Dinámicos: Procesa fórmulas matemáticas definidas para columnas, porcentajes de líneas y cálculos acumulativos.
- 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 tablaT_Reportlas líneas marcadas como no imprimibles.