Motor de Reportes Financieros
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.
Parámetros
Al ejecutar el proceso FinReport en Lirion o iDempiere, se presentan los siguientes parámetros de configuración:
| Parámetro | Nombre en BD | Descripción / Uso |
|---|---|---|
| Período | C_Period_ID |
Período contable base sobre el cual generar el reporte. Si está vacío, calcula el período basado en la fecha del sistema. |
| Jerarquía de Organización | PA_Hierarchy_ID |
Estructura de árbol organizativo para consolidar múltiples sucursales u organizaciones. |
| Organización | Org_ID |
Filtro opcional para limitar el reporte a una organización específica (y opcionalmente a sus hijas dentro de la jerarquía). |
| Socio de Negocio | C_BPartner_ID |
Filtro opcional para segmentar los saldos por un tercero específico. |
| Producto | M_Product_ID |
Filtro opcional para segmentar por un producto. |
| Cubo de Reportes | PA_ReportCube_ID |
Cubo de datos opcional para acelerar la extracción de saldos pre-agrupados en lugar de la tabla de hechos Fact_Acct. |
| Detalle de Origen Primero | DetailsSourceFirst |
Determina si las líneas detalladas de origen contable se muestran antes de las líneas de totales correspondientes. |