Añadiendo elementos al informe
Después de haber definido tanto el origen de datos como las opciones del informe, ahora podemos diseñarlo añadiendo elementos a las secciones.
Tanto en el menú insertar como en la toolbar del editor de informes encontraremos los distintos tipos de elemento que podemos incluir en el informe. Estos son:
Texto
Representa un texto simple o etiquetas de texto. Las etiquetas de texto son usadas para mostrar información descriptiva en la definición de un informe tales como títulos, encabezados, etc. Las etiquetas son elementos estáticos y sus contenido no cambia cuando se imprime el informe.
Campo
Representa los objetos de datos de campo. Los tipos de dato posibles son texto, numérico y fecha. Estos controles son usados para la extracción de datos generados dinámicamente en el informe desde la tabla de Velneo que lo alimente.
Línea
Permite crear líneas dentro del informe. Por lo general, las líneas son usadas para dibujar líneas horizontales y verticales en encabezados, subrayar títulos, etc.
Rectángulo
Permite crear figuras rectangulares en el informe. Es usado habitualmente para dibujar cajas o bordes alrededor de un área específica. Este control hace más fácil el pintado de rectángulos en lugar de hacerlo usando cuatro líneas.
Elipse
Permite crear círculos o elipses en el informe. Suelen usarse para dibujar gráficos o bordes alrededor de un texto.
Imagen
Permite crear elementos de tipo imagen. Suele usarse para incluir imágenes tanto estáticas como dinámicas en la definición de un informe. Las imágenes estáticas, tales como el logo de la empresa que a menudo son impresas en el encabezado de un informe, pueden ser alimentadas o bien por un archivo de imagen del disco, o bien por definición del informe. Las imágenes dinámicas estará alimentadas por campos de tipo objeto dibujo de tablas de Velneo.
Nota: si la la imagen va a ser una imagen de una tabla de Velneo el control deberá estar alimentado directamente por un campo de tipo objeto dibujo, ejemplo:
#IMG
. No es posible usar una fórmula, ejemplo:choose(#CM=1, #IMG_1, #IMG_2)
.
Código de barras
Permite crear códigos de barras. Para ello es necesario instalar el componente de terceros de Zint project y configurar en la aplicación donde vayamos a usar informes personalizables la senda en la que está instalado dicho componente. En el registro se encuentra en HKEY_CURRENT_USER\Software\Velneo\ExtReport\Zintdir. También se puede configurar en el editor, en las preferencias.
Los códigos soportados por dicho componente son:
Australia Post Standard Customer.
Australia Post Reply-Paid
Australia Post Routing Code.
Australia Post Redirect Code.
Aztec Code.
Aztec Runes.
Channel Code.
Code 11.
Code 128.
Code 16k.
Code 2 of 5 Data Logic.
Code 2 of 5 IATA.
Code 2 of 5 Industrial.
Code 2 of 5 Interleaved.
Code 2 of 5 Matrix.
Code 32 (Italian Pharmacode).
Code 39.
Code 39 Extended.
Code 49.
Code 93.
Codabar.
Codablock-F.
Databar.
Databar Expanded.
Databar Expanded Stacked.
Databar Limited.
Databar Stacked.
Databar Stacked Omnidirectional.
Data Matrix.
Deutsche Post Identcode.
Deutsche Post Leitcode.
Dutch Post KIX, EAN-14.
European Article Number (EAN).
FIM.
Flattermarken.
ITF-14.
International Standard Book Number (ISBN).
Japanese Postal Barcode.
Korean Postal Barcode.
LOGMARS.
Maxicode.
MicroPDF417.
MSI Plessey.
NVE-18.
PDF417.
Pharmacode.
Pharmacode 2-track.
Pharma Zentralnummer (PZN).
PLANET.
Postnet.
Royal Mail 4-state Barcode.
Telepen.
Telepen Numeric.
UK Plessey.
UPC-A.
UPC-E.
USPS One Code.
Este control puede estar alimentado, o bien por una fórmula de Velneo, o bien por una expresión de tipo script, de forma que podemos definir el contenido no sólo por medio de un valor o un campo, sino también mediante un script que se calcula en el momento de imprimir.
Imagen personalizada
Esta opción le permite representar contenidos especiales, personalizados definidos en los informes. El campo típico de aplicación utiliza esta función para los gráficos de representación o contenidos similares.
Añadiendo etiquetas de encabezados
En primer lugar, añadamos las etiquetas que representen el encabezado de cada columna de las filas de datos. Para crear un nuevo objeto etiqueta, primero seleccionar la herramienta etiqueta del menú insertar. Al hacerlo el cursor se transformará en una cruz, entonces, hacer clic sobre la sección donde queramos incluirla (por ejemplo, en la sección de cabecera de informe). Haciendo esto crearemos el objeto etiqueta en esa sección y se abrirá el diálogo de configuración correspondiente. En él podremos definir las siguientes opciones:
Etiqueta
Escribir el texto de la etiqueta.
Ajuste de texto
Si esta opción está activada, el texto será ajustado para adaptarse a la caja que lo contenga.
Imprimir sólo si la fórmula script es verdadera
Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.
Añadir una etiqueta por cada campo de la tabla que deseemos imprimir.Podremos cambiar su situación dentro de la sección simplemente pinchando, arrastrando y soltando.
Para borrar una etiqueta, seleccionarla y pulsar la tecla alt y la tecla supr.
Añadiendo líneas
Para crear un nuevo objeto de línea seleccionar el comando línea del menú insertar o seleccionar el comando correspondiente de la toolbar. El cursor se transformará en una cruz, entonces, hacer clic en la sección del informe en la zona donde queramos que comience, pincharemos y arrastraremos hasta el zona donde queramos que termine. Para mover la línea añadida simplemente habrá que hacer clic sobre ella, arrastrar y soltar. Para borrar una línea, seleccionarla y pulsar el botón supr.
Para editar las propiedades de una línea simplemente hacer doble clic sobre la misma. Las siguientes opciones están disponibles:
Imprimir sólo si la fórmula script es verdadera
Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.
Añadiendo campos al informe
Ahora debemos añadir los elementos más importantes del informe. Los objetos de campo contienen información dinámica extraída de un origen de datos, un parámetro o una variable. Para crear un nuevo objeto campo seleccionar la opción del mismo nombre del menú insertar o el comando correspondiente de la toolbar. Al hacerlo, el cursor se transformará en una cruz. Hacer clic sobre la sección en la que queramos situar el campo. La sección será generalmente la de detalle. Haciendo esto crearemos el objeto campo en una sección específica en esa posición y abrirá el diálogo donde podremos establecer sus propiedades. Estas son:
Tipo de origen del campo
Este combo contiene los posibles orígenes de los cuales el campo puede obtener datos. Los datos del campo pueden ser cargados de los orígenes siguientes:
Origen de datos.
Parámetro.
Variable.
Variable de sistema.
Script.
Plantilla.
Campo/Expresión
Esta propiedad representa el nombre de la columna de datos de la cual el campo va a tomar la información (ejemplo: campo de tabla de Velneo). Cuando se usa como origen de datos una consulta SQL, el nombre se corresponderá con el nombre de la columna sql incluida en la consulta sql. Cuando se trata de otros orígenes de datos, tales como texto, este valor suele ser el número de la columna de datos. En el caso de que sea una tabla de Velneo, se activará el editor de fórmulas de Velneo para que podamos componer la fórmula que alimenta al campo.
Tipo de datos
El tipo de datos correspondiente al campo. Se soportan los siguientes tipos de datos:
Texto.
Numérico.
Fecha.
Booleano.
Ajuste de texto
Si esta opción está activada, el campo será ajustado para adaptarse a la caja que lo contenga.
Las opciones ajustar a la derecha y ajustar a la izquierda, podremos usarlas cuando la alineación horizontal del campo sea derecha o izquierda, respectivamente.
Si el campo está alineado a la derecha, éste será alineado al margen derecho del control, pero si también activamos la opción ajustar a la derecha lo que hará será ajustar el campo al margen derecho del informe.
Si el campo está alineado a la izquierda, éste será alineado al margen izquierdo del control, pero si también activamos la opción ajustar a la izquierda lo que hará será ajustar el campo al margen izquierdo del informe.
Cadena plantilla de argumentos arg()
Se trata de una expresión de tipo cadena con el símbolo %1 para el mismo propósito que hace el código QString("String"%1).arg(valor) . El valor del campo será embebido en esta expresión.
Imprimir sólo si la fórmula script es verdadera
Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.
A continuación mostramos una tabla de fórmulas de columna de campo:
Tipo de origen de datos | Fórmula de columna de campo | Descripción |
Origen de datos Velneo | Expresión fórmula Velneo | Mediante el asistente para edición de fórmulas de Velneo especificaremos el campo o definiremos la fórmula que se aplicará en ese campo. |
Origen de datos | [ID del origen de datos.]Columna | La columna equivale a una nombre de columna SQL válido en la consulta SQL. Si el ID del origen de datos es especificado, el generador de informes asignará el origen de datos nombrado por su ID. Si no se especifica el ID del origen de datos, el origen de datos actual (el procesado en curso) se asume que lo hemos asociado previamente al detalle. |
Parámetro | nombreParámetro | El nombre/ID del parámetro. |
Variable del sistema | nombreVariable | El nombre/ID de la variable. |
Expresión | Expresión | Es posible usar incluso un script con la expresión para el campo. Tanto los datos como el origen de datos, parámetros y variables pueden ser usados en las expresiones. Para ampliar información sobre las expresiones consultar el capítulo usando expresiones. |
Plantilla | Expresión de plantilla | Una plantilla es simplemente una sustitución de elementos de un informe tales como los datos del origen de datos, parámetro o variable. Todos ellos unidos en una única cadena. |
Algunas propiedades están disponibles solamente para determinados tipos de datos. Están localizadas en separadores independientes dentro del diálogo. Las siguientes opciones están disponibles para campos numéricos:
Formato numérico
Si se activa esta opción, se activará el formateo del número.
Usar configuración local
Si se activa esta opción, el generador de informes usará los formatos numéricos locales.
Vacío si valor igual a 0
Si se activa esta opción, el contenido del campo no se imprimirá en el caso de que su valor sea 0.
Precisión decimal
El número de decimales a imprimir.
Ancho del campo
Ancho del número en dígitos. Especifica la cantidad mínima de espacio que se rellena y llenado con el carácter de relleno.
Carácter de formato
En esta opción de un único dígito se especificará el código del formato para los números. Los valores posibles son: e, E, f. Con e, E y f, la precisión es el número de dígitos después del separador decimal. Con ‘g’ y ‘G’, la precisión es el número máximo de dígitos significativos. Usado por la función QString::arg( double a, int fieldWidth = 0, char format = ‘g’, int precision = -1, const QChar fillChar).
Para continuar nuestro informe, añadir los campos de la tabla de Velneo correspondientes a las etiquetas que hemos creado previamente.
Para su uso en etiquetas existe la constante @SKIP_NEXT. Debemos usarlo en un control (usado sólo para esto) como condición de visualización, en la fórmula script. No obstante, a partir de la versión 21 existe una forma más sencilla de generar informes de etiquetas.
Esta constante para fórmulas script es la que fuerza el salto de registro, para poder imprimir varios registros distintos en el mismo detalle. Este salto se produce por orden de tabulación, por lo que debemos asegurarnos de que, los elementos correspondientes al siguiente registro, se encuentren por detrás en el orden de tabulación al control que incluye la constante.
Debemos tener en cuenta que cuando usamos la condición @SKIP_NEXT para el salto de registro en el detalle y en la última línea, en el caso de que no se completen los registros, se repite el último registro en aquellas etiquetas que deberían quedar vacías al no tener más registros que imprimir.
Para evitar esto, usaremos la variable de sistema @ISNOTFINISHED como condición para imprimir; evitaremos que se impriman estas etiquetas de más, mejorando el resultado final del informe.
Añadiendo un control texto html
En los controles HTML de un informe encontraremos el nuevo modo plantilla. Este nuevo modo permite definir contenido de textos que incluyen fórmulas. Podemos incluir fórmulas de Velneo o parámetros ($P{} ó $D{}).
En ejecución se realizará la sustitución del contenido de un control por el resultado de la fórmula del tipo $P{} ó $D{}. De esta forma obtenemos texto continuo que incluye valores dinámicos, permitiéndonos definir informes del tipo combinar correspondencia para cartas, u otros documentos personalizados.
Solamente podremos resolver fórmula que contengan un campo de Velneo, pero no fórmulas que realicen operaciones, concatenaciones o llamadas a funciones.
Añadiendo variables para totales
Antes de añadir campos de variables al informe, veamos el manejo de variables en los informes personalizables. Las variables son unos elementos especiales usados para proveer contadores y totales. Cada variable tiene un nombre, un tipo de función, tipo de datos y tiene asignada una columna de fuente de datos. Para añadir una variable seleccionar la opción variables… del menú informes. Están disponibles las opciones siguientes:
ID de variable
Identificador de la variable.
Fórmula script de la variable
Esta propiedad representa el nombre de la columna de datos de la cual la variable obtendrá los datos. No es posible usar otras variables en la fórmula.
Tipo de función
El tipo de función de la variable. Los tipos de función soportados son:
Sum: la variable de tipo suma totalizará el valor en la columna de datos especificada retornada por el campo.
Count: el tipo de variable COUNT será incrementado en 1 unidad por cada fila del detalle.
Reinicializar
Nos permite configurar cuándo se podrá a 0 la variable. Podremos hacer que la variable sea puesta a 0 solamente al comienzo del informe, o en cada página en cada agrupamiento.
Valor inicial
Valor inicial que tendrá la variable.
Desde este diálogo podremos tanto añadir como editar y/o borrar variables de un informe.
Añadiendo agrupamientos al detalle
Mientras que la mayoría de los informes pueden ser definidos usando una única sección de detalle que contenga múltiples columnas y filas de datos, otros -como es el caso de nuestro informe de ejemplo- requieren datos de resumen, totales y subtotales. Para informes que requieren datos de resumen el editor de informes personalizables soporte las secciones de agrupamiento. Las secciones de agrupamiento tienen las características siguientes:
Siempre están asociadas a una sección de detalle.
Definidas por cabeceras de agrupamiento y pies de agrupamiento.
Las cabeceras de agrupamiento siempre se imprimen encima de la sección de detalle.
Los pies de agrupamiento siempre se imprimen debajo de la sección de detalle.
Referenciar las columnas de base de datos en las cuales se interrumpirán los encabezados y los pies de agrupamiento.
Fuerzan un nuevo encabezado de agrupamiento cada vez que el valor de la columna referenciada cambie.
Fuerzan un nuevo pie de agrupamiento cada vez que el valor de la columna referenciada cambie.
No hay limitación en el nivel de agrupamientos permitido.
El el diálogo de agrupamientos se muestran los grupos añadidos al informe en el orden en el que han sido creados. Las secciones de agrupamiento añadidas aparecerán en el editor después de haber aplicado la configuración de los agrupamientos. Los agrupamientos son estructurados jerárquicamente. El primer agrupamiento será el primer nivel de agrupamiento, el segundo será el segundo nivel y así sucesivamente.
Para añadir un nuevo grupo al detalle, abrir el menú informe y seleccionar la opción detalle y agrupamientos… En la lista seleccionar el detalle deseado, entonces, para abrir el diálogo de agrupamientos hacer clic en el botón agrupamientos. Esto abrirá el diálogo de configuración de agrupamientos. El agrupamiento pertenecerá al grupo que hayamos seleccionado en la ventana anterior. Para añadir un nuevo agrupamiento hacer clic en el botón +. Podremos configurar las opciones siguientes:
ID de agrupamiento
El identificador del agrupamiento.
Fórmula script del agrupamiento
El nombre de la columna del origen de datos en la que se basa el cálculo. Si cambiamos el valor de la columna referenciada, el agrupamiento se interrumpirá. También podemos usar como fórmula valores constantes tales como 0 o 1. En ese caso el agrupamiento no se interrumpirá, simplemente finalizará. Esto podría ser muy útil para campos totalizadores finales.
Cabecera del agrupamiento y pie del agrupamiento
Para habilitar o inhabilitar la cabecera o el pie del agrupamiento. Podremos especificar también la altura inicial de estas secciones.
Reiniciar variables
Esta lista contiene los nombres de las variables que están disponibles para ser reinicializadas al finalizar los agrupamientos. Por lo tanto, solamente estarán visibles aquellas variables que tengan establecido algún valor en la opción reinicializar.
Los grupos añadidos a un detalle aparecerán en la lista de agrupamientos. Desde dicha lista podremos tanto añadir, como editar y/o borrar grupos.
Añadiendo campo de variable de totalización
Si ya tenemos definido un agrupamiento con encabezado y pie. los pies de agrupamiento generalmente son secciones usadas para mostrar totales y subtotales. Añadiremos un campo al pie del informe con los parámetros siguientes:
Tipo de origen de datos
Variable.
campo
Especificaremos el identificador que hayamos dado a la variable y tipo de datos: numérico.
Añadiendo otros elementos
A continuación enumeramos otras cosas que podríamos añadir:
Añadir un campo en el pie de página:
Tipo de origen de datos
Variable del sistema
Campo
pageno.
Tipo de dato
Numérico.
Cadena plantilla de argumentos arg()
Página: %1.
pageno es una variable del sistema que devuelve el número de la página en curso.
Ajustando y dando formato
Para terminar el informe vamos a dar formato y a ajustar los elementos. Estas son las tareas que se deberían hacer:
Ajustar la altura de las secciones haciendo uso del ratón o a través del editor de geometría. Es muy importante la altura del detalle, ya que es una sección de carácter repetitivo.
Seleccionar las etiquetas en la cabecera de la página y poner la fuente en negrita.
Seleccionar y alinear a la derecha todos los campos numéricos.
Establecer las opciones de formato para campos numéricos: activar la opción formato numérico y establecer una precisión de 2 decimales.
Activar también la opción usar configuración local para campos con valores y totales.
Probando el informe
Dispones de una serie de comandos de instrucción que te permiten elegir la salida de la impresión:
Informe externo: previsualizar informe: para previsualizar el informe. Informe externo: imprimir informe: para imprimir el informe.
Por lo tanto, necesitaremos programar un proceso que haga la vista previa o la salida a papel del informe y ejecutarlo desde Velneo vClient. El origen de la línea donde se vaya a imprimir el informe tendrá que ser una lista de registros del origen principal del informe.
Última actualización