Los informes son los objetos que se utilizan habitualmente para enviar información de tablas de datos a una impresora o a un documento de disco.
A través de este tutor vamos a conocer cómo podemos construir un informe para impresora de un listado de clientes. El informe es un objeto de lista, con lo cual, podremos usarlo como salida de una búsqueda, de un proceso origen lista de la tabla asociada al informe, etc.
El informe tendrá un encabezado de página que mostrará información general del listado: el logotipo de vTutor, fecha de impresión del informe, nº total de clientes del listado e información del número de página.
Además tendrá un detalle en el que se imprimirá la información de cada cliente y un pie de página en el que se imprimirá la dirección de nuestra página web.
Para la creación del informe nos hemos apoyado en la tabla de Clientes (CLT_M) de vTutor.
Además, hemos creado en vTutor un dibujo llamado TUT_64, que contendrá el logotipo de vTutor que usaremos en el informe.
El informe lo encontraremos en la carpeta Tablas tutores y buenas prácticas/clientes del proyecto de aplicación de vTutor.
Para crear el informe tendremos que crear un proyecto de aplicación que herede del proyecto de datos donde hemos definido la estructura de tablas. En este caso, se creará en el proyecto de aplicación de nuestra solución. En vTutor lo encontraremos en el proyecto velneo_vTutor_app dentro de la carpeta tutores/tutor de informes.
Los informes pueden estructurarse en varias partes o secciones. Una sección es una división dentro de un informe que define un área independiente y programable de éste.
Una vez hecho esto se abrirá e el panel central de Velneo vDevelop un editor desde el que podremos ir componiendo de forma gráfica el informe:
Lo primero que haremos será establecer las propiedades de este objeto. Serán:
Identificador: CLT_M.
Nombre: clientes.
Tabla asociada: CLT_M.
Salida por defecto: en este parámetro configuraremos cuál va a ser la salida por defecto del objeto. Los valores posibles son:
Cuadro de selección de impresora: siempre que se ejecute el informe se presentará la ventana de selección de impresora del sistema operativo para que el usuario pueda seleccionar la impresora por la que imprimirlo.
Impresora por defecto: siempre que se ejecute el informe será enviado a la impresora por defecto del sistema operativo.
Impresora lógica: siempre que se ejecute el informe será enviado la impresora del sistema que el usuario haya asociado a una impresora lógica definida en el proyecto en curso o en los proyectos heredados.
Presentación preliminar: siempre que se ejecute el informe no será enviado directamente a una impresora sino que se hará una previsualización del mismo.
Fichero: siempre que se ejecute el informe será guardado en disco en un archivo con formato PDF (Portable Document Format) o PS (Postscript).
En este caso seleccionaremos el valor presentación preliminar.
Impresora lógica: esta propiedad la dejaremos vacía; solamente sería necesario cumplimentarla en el caso de haber seleccionado el valor impresora lógica en la propiedad salida por defecto.
Ruta del fichero: esta propiedad la dejaremos vacía; solamente sería necesario cumplimentarla en el caso de haber seleccionado el valor fichero en la propiedad salida por defecto.
Resolución PDF/PS: seleccionaremos el valor alta. Para poder no solamente previsualizarlo sino también exportarlo a disco.
Orientación: vertical.
Tamaño de papel: A4.
Margen: estableceremos el valor ninguno; de este modo, al informe sólo se le aplicarán los márgenes mínimos de la impresora. Estos márgenes son invariables y el usuario final no podrá modificarlos.
Modo de presentación preliminar: esta propiedad se usa cuando la salida por defecto del informe es presentación preliminar. En este caso, dejaremos el valor que se propone por defecto una página.
Zoom presentación preliminar: esta propiedad se usa cuando la salida por defecto del informe es presentación preliminar. En este caso, dejaremos el valor que se propone por defecto página completa.
Una vez establecidas las propiedades del informe, pasaremos a crear los diferentes componentes del mismo. Recordemos que el informe va a constar de:
Encabezado de página (Cabecera de página) Información de clientes (Detalle) Pie de página
Cada una de estas partes se corresponde con una sección de informe.
Esta sección será impresa al comienzo de cada página del informe.
En ella recordemos que se va a mostrar:
Una imagen El título del informe. La fecha de impresión del informe. Número de página. Nº de clientes impresos en el informe.
Además, añadiremos unos textos estáticos que servirán como etiqueta de los campos que se imprimirán en la sección de detalle.
Al final de la lista de secciones del informe se habrá añadido una nueva sección con el identificador sección. Haremos doble clic sobre ella para editar sus propiedades:
Y estableceremos las siguientes:
Identificador: CAB_PAG.
Nombre: cabecera de página.
Tipo de sección: cabecera de página. Lo contenido en esta sección será impreso en cada página del informe.
Ancho: 750.
Alto: 170.
En la siguiente imagen se ve enmarcado cada control que se incluirá en esta sección:
Empecemos por el literal Listado de clientes.
Incluiremos en la sección un control de tipo texto y le estableceremos las propiedades siguientes:
Nombre: listado de clientes, que será el literal que se imprimirá.
Fuente: así como en otros controles es preferible usar la fuente sistema para que éstos hagan uso de la fuente del sistema donde se ejecute la aplicación, lo que redundará en una mejor visualización de los mismos, en los informes es conveniente usar fuentes específicas ya que si usamos una fuente sistema, los resultados a la hora de imprimir el informe pueden ser muy distintos según el sistema operativo desde el que lo imprimamos y esto, en el caso de informes en los que los controles deban tener un tamaño exacto y ocupar un lugar concreto, hará que el informe no siempre se imprima como esperamos. En este caso hemos seleccionado fuente Aria, 8, negrita.
Para mostrar la página en curso, añadiremos otro control de tipo texto. Dado que el número de página es un dato dinámico, usaremos esta propiedad contenido, ya que nos permite usar una fórmula como contenido del control. Estableceremos la fórmula siguiente:
“Página ” + sysPageCurrent + ” de ” + sysPageLast
SysPageCurrent y SysPageLast son las variables del sistema que devuelven el número de página en curso y el número total de páginas de un informe, respectivamente.
Para mostrar el literal fecha de informe: crearemos otro control de tipo texto y, en la propiedad nombre escribiremos Fecha del informe:.
Para mostrar el literal nº de clientes: crearemos otro control de tipo texto y, en la propiedad nombre escribiremos Nº de clientes:.
Para mostrar el número de clientes del informe, añadiremos otro control de tipo texto. Dado que el número de clientes es un dato dinámico, usaremos esta propiedad contenido, ya que nos permite usar una fórmula como contenido del control. Estableceremos la fórmula siguiente:
sysListSize
SysListSize es una variable del sistema que devuelve el número total de registros de una lista. En este caso, de la lista de clientes que alimente el informe.
Bajo el texto “listado de clientes” se ha añadido una línea horizontal. Para ello usaremos un control de tipo figura; para ello pulsaremos sobre el icono de la barra de controles del editor de informes, pincharemos con el botón izquierdo del ratón en el área de la sección del informe donde queramos incluirlo y, sin soltar el botón, arrastraremos hasta la posición deseada y soltaremos. Y estableceremos las propiedades siguientes:
Tipo figura: línea horizontal.
Tamaño de línea: 2 píxeles.
Por último, crearemos dos controles de texto más, con el contenido Nombre/sector y observaciones, respectivamente que situaremos en la parte inferior de la sección, y otra figura, otra línea horizontal debajo de los mismos. Estos controles harán de encabezado de las líneas de detalle del informe.
Esta sección es creada automáticamente cuando se crea un informe. Lo que incluyamos en la sección de detalle será impreso por cada registro que contenga la lista que alimenta al informe. En este caso, vamos a añadir información sobre cada cliente.
Campo objeto dibujo: seleccionaremos el campo #IMG.
Aspecto dibujo: seleccionaremos el valor proporcionar sin ampliar, esto hará que la imagen crezca proporcionalmente según el tamaño dado al control pero solamente hasta su tamaño original, nunca la ampliará.
Altura variable: seleccionaremos el valor falso, ya que en este caso nos interesa que permanezca el tamaño dado al control en el informe.
Para incluir el nombre del cliente usaremos un control de tipo texto, del que ya hemos hablado antes. En la propiedad contenido seleccionaremos el campo #NAME. A la fuente le hemos asignado el estilo negrita.
Para incluir el sector de actividad de la empresa del cliente usaremos un control de tipo texto, del que ya hemos hablado antes. En la propiedad contenido seleccionaremos el campo #SEC_ACT.NAME (campo NAME del enlace a la tabla de Sectores de actividad).
Para incluir las observaciones del cliente usaremos también un control de tipo texto. En la propiedad contenido seleccionaremos el campo #OBS y, además, estableceremos las propiedades siguientes:
Alineamiento horizontal: seleccionaremos el valor justificado, de modo que el texto quede alineado a ambos márgenes del control.
Multilíneas: seleccionaremos el valor verdadero, de modo que el texto se presente en varias líneas.
Altura variable: seleccionaremos el valor verdadero, ya que el contenido de este tipo de campo es de longitud variable.
Puede partirse: seleccionaremos el valor verdadero, esto hará que, si el contenido del campo no cabe entero al final de una página, su impresión continuará en la siguiente, de lo contrario solamente se imprimiría lo que cupiese en la página en curso y el resto se truncaría.
Dado que en la sección de detalle hemos incluido un control con altura variable, debemos poner a verdadero la propiedad puede partirse.
En esta sección simplemente vamos a incluir nuestra página web:
Al final de la lista de secciones del informe se habrá añadido una nueva sección con el identificador sección. Haremos doble clic sobre ella para editar sus propiedades:
Y estableceremos las siguientes:
Identificador: PIE_PAG.
Nombre: pie de página.
Tipo de sección: pie de página de página. Lo contenido en esta sección será impreso en cada página del informe.
Ancho: 750.
Alto: 50.
En esta sección simplemente incluiremos un control de tipo texto, del que ya hemos hablado antes. En la propiedad nombre escribiremos www.velneo.es, y le asignamos una alineación horizontal centrada.
Y ya tenemos listo nuestro informe.
En el tutor, para ejecutar el informe lo que se ha hecho es incrustarlo como una vista de datos en el formulario del tutor y alimentado por una búsqueda de clientes.
Para crear un objeto de este tipo hacer doble clic sobre el icono de la galería de objetos (Tecla Insert).
Para añadir una nueva sección al informe seleccionaremos el informe en el explorador de proyectos de Velneo vDevelop y pulsaremos el botón del panel de sub-objetos y seleccionamos la opción sección:
Excepto para la imagen, para el resto de los campos a incluir en esta sección usaremos un control de tipo texto; para ello pulsaremos sobre el icono de la barra de controles del editor de informes, haremos clic con el botón izquierdo del ratón en el área de la sección del informe donde queramos incluirlo y, sin soltar el botón, arrastraremos hasta la posición deseada y soltaremos.
Para añadir el logo de vTutor, añadiremos al informe un control de tipo dibujo estático. para ello pulsaremos sobre el icono de la barra de controles del editor de informes, haremos clic con el botón izquierdo del ratón en el área de la sección del informe donde queramos incluirlo y, sin soltar el botón, arrastraremos hasta la posición deseada y soltaremos. En la propiedad dibujo seleccionaremos el dibujo TUT_64 y en la propiedad aspecto dibujo seleccionamos el valor original centrado.
Para incluir la imagen del cliente usaremos un control de tipo campo objeto dibujo; para ello pulsaremos sobre el icono de la barra de controles del editor de informes, pincharemos con el botón izquierdo del ratón en el área de la sección del informe donde queramos incluirlo y, sin soltar el botón, arrastraremos hasta la posición deseada y soltaremos. Estableceremos las propiedades siguientes:
Para añadir una nueva sección al informe seleccionaremos el informe en el explorador de proyectos de Velneo vDevelop y pulsaremos el botón del panel de sub-objetos y seleccionamos la opción sección: