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:

  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.

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.