Ir al contenido
FINORA Academy
SistemaFINORA ERP

FINORA ERP · Tutorial

Crear tu primer reporte

En desarrolloVerificadoIntermedio25 minVerificado el 20 oct. 2026

Vas a crear un reporte de ventas por cliente: las órdenes de venta completadas, agrupadas por cliente, con un subtotal por cliente y el total general, filtrables por fecha y por cliente. Al final lo tendrás en el menú, en PDF, en Excel, con una plantilla Excel propia y en CSV.

  • Acceso de lectura y escritura a Analítica › Reportes › Diseñador de reportes.
  • Saber qué tablas guardan lo que quieres listar. Aquí: C_Order (órdenes), C_BPartner (terceros) y C_Currency (monedas).
  1. Abre Diseñador de reportes (o escribe «Diseñador» en la búsqueda Alt+G) y pulsa Nuevo.

  2. Escribe el Código (VENTAS_CLIENTE: mayúsculas, dígitos y _), el Nombre que verá el usuario y una Categoría para agruparlo en el catálogo, por ejemplo «Ventas».

  3. En Consulta escribe la sentencia SELECT. Cada parámetro es un marcador :Nombre, y la consulta siempre filtra por :AD_Client_ID:

    SELECT bp.Name AS cliente, o.DocumentNo AS orden, o.DateOrdered AS fecha,
    cur.ISO_Code AS moneda, o.GrandTotal AS total
    FROM C_Order o
    JOIN C_BPartner bp ON bp.C_BPartner_ID = o.C_BPartner_ID
    JOIN C_Currency cur ON cur.C_Currency_ID = o.C_Currency_ID
    WHERE o.AD_Client_ID = :AD_Client_ID
    AND o.IsSOTrx = 'Y' AND o.DocStatus IN ('CO', 'CL')
    AND (:DateOrdered IS NULL OR o.DateOrdered >= :DateOrdered)
    AND (:DateOrdered_To IS NULL OR o.DateOrdered::date <= :DateOrdered_To)
    AND (:C_BPartner_ID IS NULL OR o.C_BPartner_ID = :C_BPartner_ID)
    ORDER BY bp.Name, o.DateOrdered, o.DocumentNo
  4. En Agrupar por escribe cliente: el alias por el que se agrupan las filas. La consulta debe ordenar por él (ORDER BY bp.Name).

  5. Formatos ya trae PDF,XLSX,CSV (con XLSX también se ofrece el Excel con plantilla). Guardar.

La definición del reporte de ejemplo.
  1. 1Código único del reporte en tu empresa
  2. 2La consulta: SELECT con marcadores :Nombre y siempre :AD_Client_ID
  3. 3Formatos que se ofrecen al ejecutar
  4. 4Columna que agrupa las filas, con subtotales

En la pestaña Parámetros, una fila por marcador, con el mismo nombre que en la consulta (sin los dos puntos):

MarcadorEtiquetaTipoDetalle
DateOrderedFecha de la ordenFechaMarca Rango: el usuario da «desde» y «hasta», y la consulta recibe :DateOrdered y :DateOrdered_To
C_BPartner_IDClienteRegistroTabla C_BPartner. Un parámetro de tipo Registro se llama como la clave de su tabla

Los marcadores del sistema (:AD_Client_ID, :AD_Org_ID, :AD_User_ID, :AD_Role_ID y :Today) no se declaran. Si un parámetro es obligatorio, márcalo; si quieres que se proponga solo, escribe su Valor por defecto (por ejemplo @#Date@ para la fecha de hoy).

Los dos parámetros del reporte.
Un parámetro de tipo Registro y su tabla.

Los botones del diseñador están en el engranaje de la barra (Proceso, Alt+O).

Los seis botones del diseñador.
  1. Pulsa Detectar columnas. FINORA lee las columnas de la consulta sin traer datos y crea una fila por alias con su tipo: fecha como Fecha y total como Monto, con totales. Las columnas …_id quedan ocultas.
  2. En la pestaña Columnas ajusta el Encabezado, el Tipo, Totalizar y el Ancho relativo. Desmarca Visible en cliente: ya sale como título de cada grupo.
Las columnas después de ajustarlas.
TipoCómo se imprime
TextoTal cual, alineado a la izquierda
Entero1.234
Número1.234,5678 (de 2 a 4 decimales)
Monto1.234,56
Fecha31/12/2026
Porcentaje15,00 % (el valor ya es un porcentaje)
  1. Pulsa Vista previa: se descarga un PDF con las primeras 50 filas y los parámetros en sus valores por defecto. Compara un total con la ventana de Órdenes de venta.
  2. Si algo no cuadra, corrige la consulta o las columnas y vuelve a la vista previa.
  3. Pulsa Publicar. FINORA crea el proceso del reporte con sus parámetros, te da acceso y lo pone en el menú Reportes. Si cambias los parámetros más adelante, publica otra vez.

Abre Reportes › Ventas por cliente (o búscalo con Alt+G). Elige las fechas, el cliente si quieres uno solo, el Formato y pulsa OK: el archivo se descarga.

Los parámetros que ve quien ejecuta el reporte.
  1. 1Un rango: desde y hasta
  2. 2Un registro: se busca como en cualquier ventana
  3. 3PDF, Excel, Excel con plantilla o CSV
  4. 4Opcional: el archivo llega por correo
En PDF: logo, RIF, grupos con subtotal y, al final, el total general y la huella de los datos.
En Excel: montos y fechas de verdad, autofiltro y subtotales que siguen al filtro.

En CSV salen solo el encabezado y los datos, con ; y coma decimal, listos para otro sistema.

  1. En el diseñador pulsa Generar plantilla base. Se descarga un .xlsx y queda adjunto en la pestaña Plantillas como plantilla por defecto.
  2. Ábrelo en Excel. Verás los marcadores: ${company.name}, ${report.name}, ${report.params} y, en la fila de datos, uno por columna (${orden}, ${fecha}, ${total}), más ${total.total} en la fila de totales.
  3. Dale el formato de tu empresa: colores, fuentes, logo, columnas nuevas con fórmulas. La fila con los marcadores de columna se repite por cada registro con su estilo; lo que esté debajo de ella baja solo.
  4. Guarda, vuelve a Plantillas, borra el adjunto viejo y adjunta el nuevo con el clip.
  5. Ejecuta el reporte con el formato Excel con plantilla.
La plantilla base, con sus marcadores.
La misma plantilla llenada con los datos.
MarcadorSe reemplaza por
${COLUMNA}El valor de la columna en cada fila (marca la fila de datos)
${total.COLUMNA}El total de una columna con Totalizar
${param.X}, ${report.params}Un parámetro, o todos los que se usaron
${report.name}, ${report.generated}, ${report.user}, ${report.rows}Título, fecha y hora, quién lo generó, filas
${company.name}, ${company.rif}Razón social y RIF

Una celda con un solo marcador recibe el valor como número o fecha, con el formato que le diste en Excel.

Si pides Excel con plantilla a un reporte que no tiene ninguna, recibes el Excel automático y el mensaje Sin plantilla: se usó el Excel automático.

Los reportes que trae un módulo (por ejemplo Nómina — básicos) se ven en el diseñador, pero son de solo lectura. Para cambiarlos:

  1. Abre el reporte del sistema en el diseñador y pulsa Copiar a mi empresa (engranaje).
  2. Deja Código nuevo vacío para que tu copia reemplace al original: desde el mismo menú del módulo, la API y cualquier otro lugar se ejecutará tu versión. Escribe un código distinto si prefieres un reporte nuevo al lado del original.
  3. Cambia lo que necesites en la copia: columnas, encabezados, plantilla o la consulta.

El reporte del sistema no se toca: si borras o desactivas tu copia, vuelve a ejecutarse el original.

En el diálogo del reporte escribe una dirección en Enviar a (correo). FINORA genera el archivo, lo descarga y además lo envía como adjunto con el servidor de correo configurado para la empresa.

Lo que vesQué hacer
La consulta debe filtrar por :AD_Client_IDAgrega WHERE t.AD_Client_ID = :AD_Client_ID
La consulta debe ser una sola sentenciaQuita lo que hay después del ;
La consulta usa «?»Usa marcadores :Nombre; para JSON, jsonb_exists en vez de ?
Marcadores sin parámetro: :XDeclara X en Parámetros con el mismo nombre
El parámetro X no se usa en la consultaQuítalo o úsalo en la consulta
Columnas que la consulta no devuelveCambiaste un alias: corrígelo o vuelve a Detectar columnas
El reporte supera el máximo de filasAcota las fechas o sube Máximo de filas
El reporte tardó más del tiempo máximoAcota los parámetros o pide al administrador revisar la consulta
debe llamarse C_BPartner_ID (al publicar)Un parámetro de tipo Registro se llama como la clave de su tabla
es un reporte del sistemaUsa Copiar a mi empresa antes de cambiarlo