2.3 · Informes y reporting (editor de informes)

Nivel 2 · Intermedio: datos, consultas e informes

2.3Informes y reporting (editor de informes)

Objetivo: Crear informes (listados, facturas, etiquetas) con el editor de informes e imprimirlos o exportarlos a PDF, con rupturas y totales.
Tiempo estimado: 11 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Los informes son los documentos impresos o exportados que produce la aplicación (facturas, albaranes, listados, estadísticas, etiquetas); WinDev ofrece un editor de informes visual específico.
  • Un informe se divide en bloques que se imprimen en momentos distintos: inicio de documento, cabecera de página, cuerpo (repetido para cada registro), pie de página y fin de documento.
  • Las rupturas son EL mecanismo del reporting: una agrupación (por cliente, mes, categoría) crea un bloque de inicio y un bloque de fin de ruptura donde se colocan los subtotales — siempre que los datos estén ordenados.

Mini-caso hilado — Yacine edita la factura del negocio

Yacine, desarrollador WinDev en una pyme de venta de material eléctrico en Orán, debe producir las facturas de clientes de la aplicación de gestión. Crea un informe en el editor de informes y lo vincula a un origen de datos: una consulta preparada de antemano (pedido + líneas + cliente), filtrada y ordenada. Coloca los campos en el bloque cuerpo (repetido para cada línea), la cabecera de factura en el bloque inicio de documento, el logotipo y el título en la cabecera de página, y el total general en el fin de documento. Como las facturas a veces listan varios pedidos por cliente, crea una ruptura por cliente para obtener subtotales. Por último, prevé la exportación a PDF para el envío por correo electrónico y parámetros (número de pedido) para reutilizar el informe.

Caso autónomo de esta sección: reaparece en el curso, el esquema, el guion y el reto de 48 h de la sección 2.3.

1. Documentos, no código

Los informes son los documentos impresos o exportados que produce la aplicación: facturas, albaranes, listados, estadísticas, etiquetas, extractos. Es un ámbito en el que WinDev destaca especialmente, con un editor de informes visual específico. Se dibuja el informe, se vincula a un origen de datos (un archivo del análisis, una consulta, una variable), y WinDev gestiona la paginación, las rupturas y los totales.

2. Los bloques de un informe

La noción clave es la de los bloques: zonas impresas en momentos distintos. Inicio de documento (una sola vez: portada, cabecera de factura), cabecera de página (en cada página: logotipo, título), cuerpo (repetido para cada registro — es el núcleo), pie de página (número de página, menciones), fin de documento (totales generales, firma).

3. Rupturas y exportación

Se añaden los bloques de ruptura: cuando se agrupa (por cliente, por mes, por categoría), un bloque de inicio de ruptura introduce el grupo y un bloque de fin de ruptura muestra sus subtotales — con la condición imperativa de que los datos estén ordenados por ese campo. Puntos prácticos: el informe puede visualizarse, imprimirse o exportarse (en particular a PDF, muy solicitado), y se le pueden pasar parámetros (periodo, cliente). Buena práctica: preparar los datos mediante una consulta en lugar de multiplicar los cálculos en el informe.

Error frecuente de interpretación: «Un informe calcula sus totales solo; el cuerpo se imprime una vez; y se puede agrupar sin ordenar». No, triple error. Los subtotales por grupo se obtienen con las rupturas, no automáticamente. El bloque cuerpo se repite para cada registro (es el núcleo del informe), solo el bloque inicio de documento se imprime una vez. Y una ruptura exige que los datos estén ordenados por el campo de agrupación, de lo contrario un grupo reaparece más adelante y produce subtotales falsos. Yacine, por tanto, prepara sus datos mediante una consulta ordenada.
Los bloques de un informe Cada bloque se imprime en un momento preciso; las rupturas añaden los subtotales por grupo. Inicio de documentoUna vez (cabecera de factura)+Cabecera de páginaCada página (logotipo, título)+CuerpoRepetido por registro+Fin de documentoTotales generales Ruptura = agrupación por cliente/mes + subtotales (datos ordenados obligatorios).
Cada bloque se imprime en un momento preciso; las rupturas añaden los subtotales por grupo.
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Yacine, desarrollador WinDev en una pyme de venta de material eléctrico en Orán, aprende que los informes son los documentos impresos o exportados de la aplicación (facturas, listados, estadísticas, etiquetas) y que el editor de informes de WinDev es un verdadero punto fuerte. 2) Retiene que un informe se divide en bloques: inicio de documento (una vez), cabecera de página (cada página), cuerpo (repetido para cada registro), pie de página y fin de documento (totales generales), y que las rupturas añaden los subtotales por grupo si los datos están ordenados. 3) Para sus facturas, vincula el informe a una consulta, coloca las líneas en el cuerpo, la cabecera en el inicio de documento y prevé la exportación a PDF así como un parámetro número de pedido. Lección: preparar los datos mediante una consulta en lugar de multiplicar los cálculos en el informe.

🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Ruptura y exportación a PDF

Obtener subtotales por cliente y luego difundir: Yacine combina rupturas, parámetros y exportación.

// Lancer l'apercu de l'etat facture pour une commande donnee
iApercu("ETAT_Facture", {pNumCommande})

// Structure des blocs
Debut de document -> en-tete (raison sociale, coordonnees)
Haut de page      -> logo + titre
Corps             -> une ligne par article
Rupture client    -> sous-total par client (donnees TRIEES)
Fin de document   -> total general

Lecture   : le corps se repete par enregistrement ; les ruptures font les sous-totaux
Reflexe   : preparer les donnees via une REQUETE triee + prevoir l'export PDF

Lectura: el bloque cuerpo repite cada línea, y la ruptura por cliente coloca los subtotales al final del grupo.

Lección: los datos deben estar ordenados para que las rupturas sean correctas, y el informe es reutilizable gracias al parámetro {pNumCommande}.

Vocabulario de la sección

Informe
El documento impreso o exportado que produce la aplicación: factura, albarán, listado, estadística, etiqueta.

Ejemplo sencillo: Yacine crea el informe «Factura de cliente» del negocio.

Lo que no es: una ventana de entrada mostrada en pantalla.

Reflejo: producir un documento → un informe.

Bloques de un informe
Las zonas impresas en momentos distintos: inicio de documento (una vez), cabecera de página (cada página), cuerpo (por registro), pie de página, fin de documento.

Ejemplo sencillo: Yacine coloca las líneas de factura en el cuerpo.

Lo que no es: un único bloque impreso de una sola vez.

Reflejo: repetir por registro → el bloque cuerpo.

Ruptura (agrupación)
La agrupación por un valor (cliente, mes, categoría): el bloque de inicio introduce el grupo y el de fin muestra sus subtotales.

Ejemplo sencillo: Yacine crea una ruptura por cliente para los subtotales.

Lo que no es: una simple ordenación sin subtotal.

Reflejo: subtotales por grupo → una ruptura.

Origen de datos
Aquello en lo que se apoya el informe: un archivo del análisis, una consulta (recomendado) o variables.

Ejemplo sencillo: Yacine vincula la factura a una consulta pedido + líneas + cliente.

Lo que no es: valores introducidos a mano en el informe.

Reflejo: preparar los datos correctamente → una consulta como origen.

Exportación a PDF
Un informe puede visualizarse, imprimirse o exportarse — siendo el PDF el formato más solicitado (envío por correo electrónico, archivo, difusión).

Ejemplo sencillo: Yacine envía la factura en PDF por correo electrónico al cliente.

Lo que no es: imprimir solo en papel, sin archivo difundible.

Reflejo: difundir o archivar un documento → la exportación a PDF.

En la práctica — En la práctica — Crear un informe con totales

  1. Prepare primero una consulta que proporcione exactamente los datos deseados (filtrados, ordenados) en lugar de calcularlo todo en el informe, como Yacine.
  2. Cree el informe sobre ese origen y coloque los campos en el bloque cuerpo (el que se repite para cada registro).
  3. Añada los bloques de cabecera de página (logotipo, título) y pie de página (número de página), y luego fin de documento para el total general.
  4. Defina una ruptura (por cliente, por mes) para obtener subtotales por grupo, y prevea la exportación a PDF así como parámetros (periodo, cliente).
Produce documentos profesionales (facturas, listados, estadísticas) con agrupaciones, subtotales y total general, imprimibles o exportables a PDF.

Guion paso a paso — editar la factura como Yacine (5 min)

1) Prepare una consulta pedido + líneas + cliente, filtrada y ordenada por cliente. 2) Cree un informe y vincúlelo a esa consulta. 3) Coloque las líneas en el bloque cuerpo, la cabecera en el inicio de documento y el total general en el fin de documento. 4) Cree una ruptura por cliente para los subtotales. 5) Añada un parámetro {pNumCommande} y pruebe la vista previa (iApercu), y luego exporte a PDF.

Sin ordenación por el campo de agrupación, un grupo puede reaparecer y falsear los subtotales: ordene el origen.

Plantilla para copiar y pegar — mi informe de factura

Source del'etat : REQUETE (commande + lignes + client) filtree et TRIEE
Debut de document : en-tete (raison sociale, coordonnees)
Haut de page      : logo + titre
Corps             : une ligne par article  (repete par enregistrement)
Bas de page       : numero de page
FIN de document   : TOTAL general
Rupture (client)  : sous-total par client -> donnees TRIEES imperativement
Parametre         : {pNumCommande}   Export : PDF

Factura de cliente

Yacine produce la factura con cabecera, líneas y total general, exportable a PDF.

Listado de reaprovisionamiento

Yacine edita el listado de productos por debajo del umbral de stock, ordenado por proveedor.

Estadísticas por mes

Yacine agrupa las ventas por mes con una ruptura y subtotales.

Etiquetas de productos

Yacine genera pliegos de etiquetas para los artículos del negocio.

✓ Buenas prácticas

  • Preparar los datos mediante una consulta (filtrada, ordenada) en lugar de calcularlo todo en el informe.
  • Colocar las líneas en el bloque cuerpo y el total en fin de documento.
  • Prever la exportación a PDF y parámetros para la reutilización.

✗ Errores frecuentes

  • Olvidar la ordenación antes de una ruptura → subtotales falsos.
  • Poner las líneas en otro sitio que no sea el bloque cuerpo.
  • Multiplicar los cálculos en el informe en lugar de preparar una consulta.

Puntos clave

  • Los informes producen los documentos de la aplicación (facturas, listados, estadísticas, etiquetas).
  • Un informe se divide en bloques: inicio de documento, cabecera de página, cuerpo (por registro), pie de página, fin de documento.
  • Las rupturas son el mecanismo del reporting: subtotales por grupo, siempre que se ordenen los datos.
  • Buena práctica: preparar los datos mediante una consulta, prever parámetros y exportación a PDF.

Reto 48 h — aplícalo mañana

Como Yacine, cree un informe vinculado a una consulta ordenada, coloque las líneas en el bloque cuerpo y el total en fin de documento. Añada una ruptura por cliente (o por mes) para obtener subtotales, y luego exporte el informe a PDF. Explique en una frase por qué los datos deben estar ordenados por el campo de agrupación.

Lista de salida de la sección
  • Creo un informe vinculado a una consulta y coloco los campos adecuados en el bloque correcto.
  • Sé obtener subtotales por grupo con una ruptura.
  • Sé exportar un informe a PDF con parámetros.
Autoevaluación 1-5: ¿entiendo el papel de cada bloque de un informe?Autoevaluación 1-5: ¿sé crear una ruptura correcta (datos ordenados) y exportar a PDF?

Preguntas frecuentes

¿Cómo obtener subtotales por grupo en un informe?

Utilizando las rupturas: se define una agrupación sobre un campo (el cliente, el mes, la categoría), lo que crea un bloque de inicio y un bloque de fin de ruptura — es en el bloque de fin donde se colocan los subtotales. Condición imperativa: los datos deben estar ordenados por ese campo, de lo contrario un grupo reaparece más adelante y los subtotales se vuelven falsos.

¿Hay que calcular los totales en el informe o en el origen?

Prepare los datos mediante una consulta (filtrada, ordenada, eventualmente con agregados): el informe se limita entonces a mostrar y colocar los subtotales en las rupturas. Multiplicar los cálculos en el informe lo hace más complejo y menos reutilizable; la buena práctica es preparar los datos de antemano.

Comprueba tu comprensión

¿Cómo se obtienen subtotales por grupo en un informe?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 2Preguntas inéditas y más difíciles para validar tus conocimientos