Hola a todos.
Es una pena que una Herramienta tan importante como VReport esté tan poco mimada por Velneo.
La última versión de VReport es la 1.6 que salió totalmente integrada en VDevelop con Velneo 7.16.
Tenemos 3 fuentes de información:
-
Video tutorial de Informes con VReport. https://youtu.be/9Io2yekPQtI. Tutorial impecable como todos los de Jesús Arboleya.
Es de la versión 1.5 por lo tanto no contempla las novedades de la versión 1.6. -
Página oficial de VReport con el histórico de Versiones, Documentación y Tutorial.
http://velneo.es/velneo-open-app/velneo-vreport/
No entiendo por qué la siguen denominando Open App cuando VReport es desde la versión Velneo 7.17 un elemento más de VDevelop totalmente integrado en la herramienta de desarrollo. -
Listado de Novedades de Velneo 7.16 en formato PDF (página 7 y sucesivas). http://velneo.es/files/2014/10/velneo7161.pdf
Como podréis comprobar hay un pupurri de fuentes de documentación, que como siempre necesita de un esfuerzo extra para darnos una idea de todos los detalles de la herramienta.
VReport necesita ya de una página independiente donde centralizar todo, igual que la tiene vDevelop. También con la nueva aplicación vTutor se podrá dar un buen repaso a la documentación.
Respecto al tema tratado en este hilo, me gustaría dejar claros algunos conceptos relacionados con el Origen de datos, que como me imagino les pasará a muchos, a mí me supuso en su día varias horas de prueba y error.
- VReport necesita una Lista de Entrada como Origen de datos único del Informe.
- Tenemos que definir en el Informe al menos un Origen de Datos que se corresponda con la tabla de la Lista de Entrada.
- El primer Origen de Datos del Informe puede ser de 2 Tipos (propiedad Abriendo/ejecutando rol):
- Comienzo del Informe - es el tipo por defecto, el informe se alimenta directamente de la Lista de Entrada
- Iteracción del subinforme - la Lista de Entrada determina los SubInformes que se irán creando. La consecuencia inmediata es que dispondremos de tantas Cabeceras de Informe como registros tenga la Lista de Entrada.
- El segundo y sucesivos Origenes de Datos pueden ser de 2 Tipos:
- Origen de datos hijo (subconsulta) - la Lista se genera mediante un Proceso contra el Origen de Datos de tipo Comienzo del Informe.
- Comienzo del Informe - la Lista se genera mediante un Proceso contra el Origen de Datos de tipo Iteracción del subinforme.
Un poco lioso y como habéis comentado poco intuitivo si no se explica muy bien, pero resumiendo:
- Queremos un Informe con subconsultas Mestro/Detalle de varios niveles. El Maestro será la Lista de Entrada del Informe de tipo Comienzo del Informe. Además habrá tantos Origenes de tipo Origen de datos hijo (subconsulta) como Detalles queramos imprimir.
IMPORTANTE.- El Origen de la sección Detalle será el Maestro, es decir, el tipo Comienzo del Informe.
EJEMPLO DEL TUTOR.- CLIENTES_ALBARANES_LINEAS_SUBCONSULTAS
La Lista de Entrada son Clientes y las Subconsultas son los Albaranes y las Líneas (Líneas es subconsulta de Albaranes). - Queremos un Informe compuesto de varios Subinformes con su cabecera de Informe independiente. Nuestro deseo es mostrar un Maestro con uno o varios Detalles seguidos o en paralelo. Lógicamente, solo puede haber un nivel de Subinformes. Habrá un Origen de Datos de tipo Iteracción del subinforme con la lista de Maestros para crear una Cabecera de Informe por cada uno de ellos. Además habrá tantos Origenes de datos de tipo Comienzo del Informe como Detalles queramos mostrar.
IMPORTANTE.- El Origen de cada sección Detalle será la Lista del detalle, es decir, el tipo Comienzo del Informe.
EJEMPLO DEL TUTOR.- CLIENTES_FACTURAS_ALBARANES
Genera tantos subInformes como Clientes hay en la Lista de Entrada. Cada subinforme se compone de 2 detalles, Facturas y Albaranes. Observad que hay tantas Cabeceras de Informe como Clientes.
Lo importante es entender qué Origen de datos debemos asignar a cada sección Detalle para que el motor de vReport pueda recorrer correctamente la Lista de registros del Informe. Es el programador quien debe usar los punteros a maestro existentes en las tablas para pintar cualquier dato que necesita. También podemos acceder a cualquier Origen de datos desde cualquier objeto del Informe.
Espero que este mini resumen sobre los Origenes de datos haya dado un poco más de luz al tema.
Queda pendiente iluminar los siguientes temas (muchas más horas de prueba y error):
- Formato condicional
- Opciones HTML
- Zonas
Saludos
Paco Satué