Creación de informes con Delphi 5

Revisión del 10:27 31 ene 2014 de Lissette GT (discusión | contribuciones) (Información durante la ejecución)
QuickReport
Información sobre la plantilla
Sitio web
http://www.quickreport.co.uk/

Creación de informes con Delphi 5

En Delphi 5 el diseño de informes se basa en el uso de los componentes Quickreport, que encontraremos en la página Qreport de la paleta de componentes. Mediante estos componentes es posible diseñar un informe fácilmente, utilizando un formulario para la composición visual. La ventaja de quickreport frente a otras herramientas de diseño de informes se trata de un conjunto de componentes VCL y, como tal su código pasa a formar parte de nuestro propio programa sin necesidad así de tener que distribuir aplicaciones separadas. Además, la generación de un informe con Quickreport es más rápida, ya que no es necesaria la ejecución de un programa independiente.

Funcionamiento general de Quickreport

El formato general de un informe Quickreport se diseña en un formulario, lo que hace innecesario el uso de una ventana separada para este fin.

Dicho formulario se transforma automáticamente en un informe Quickreport en el momento en que insertamos en ella un componente Quickreport. Este componente nos servirá para relacionar el informe con los datos a utilizar en el mismo, además de para establecer algunos aspectos generales.

Por regla general, todo informe se divide en múltiples secciones, como pueden ser la cabecera, cuerpo, pie, divisiones de grupo, etc. Cada una de estas secciones está representada mediante un componente TQRBand. Este componente aparece visualmente, al insertarlo en el formulario, como una franja de izquierda a derecha y actúa como un contenedor, de tal forma que es posible insertar en él los componentes necesarios para mostrar la información adecuada en cada sección. Entre estos componentes encontramos TQRDBtext, TQRMemo y TQRLabel, que facilitan la impresión de un texto, un campo memo o un título respectivamente.

Mediante el componente TRGroup es posible agrupar los datos de un informe basándose en uno o más campos, esta agrupación puede producirse simplemente a partir del orden de los registros o bien para generar un informe maestro/detalle, para lo cual deberemos usar además el componente TQRSubDetail.

El aspecto del informe puede ser realzado incluyendo en él diversos elementos gráficos, usando el componente TQRShape. Este componente, al igual que otros, habrá de incluirse en el TQRBand correspondiente a la sección en la que se desea hacer aparecer el elemento gráfico. Además de los elementos elementos de realce, los títulos y los propios datos, en un informe también pueden aparecer otras informaciones, como campos calculados e información de sistema. En el primer caso usaremos el componente TQRExpr, facilitando el cálculo a realizar, mientras que en el segundo usaremos un TQRSysData, mediante el cual podremos obtener la fecha actual, el número de página y datos similares.

Una vez que el informe esta diseñado, en ejecución este puede ser visualizado en pantalla, haciendo una visualización previa, o bien directamente impreso. También es posible exportarlo a un archivo en diversos formatos. Para ello el componente TQuickReport dispone de los métodos adecuados.

El componente TQuickReport

Este es el componente central de todo informe QuicReport. Su inserción en el formulario provoca que esta se comporte como una ventana de dieño de informe y no como un formulario normal. El primer cambio que podemos apreciar, en el mismo momento en que insertamos el TQuickReport, es que en el formulario aparece una barra de desplazamiento horizontal y otra vertical, cuya finalidad es facilitar el desplazamiento por las secciones del informe, que pueden ocupar bastante mas espacio del disponible físicamente en el formulario.

Utilizando las opciones Zoom in y Zoom out del menú emergente, podremos ver todo el informe e ir ampliando la sección que nos interese.

Para iniciar el diseño de un informe usted puede partir de cero, con un formulario vacío, o bien de un informe predefinido.

En el depósito de objetos existen varios modelos de informe prediseñados que podemos añadir a nuestro proyecto según nos interese.

Selección de los datos a imprimir

Los datos a imprimir en el informe vendrán, en la mayoría de los casos, del contenido de una base de datos, aunque también es posible facilitar los datos a imprimir desde otras funciones gracias a la existencia de un evento, OnNeedData, que se produce cada vez que se necesita un registro de datos a imprimir.

Al igual que el componente TDataSource, un TQuickreport cuenta con una propiedad DataSet mediante la cual relacionamos el informe con un TTable o TQuery. En cualquier caso, el componente TQuickreport se encargará de ir avanzando de un registro a otro, recuperando los datos para el informe.

Formato del informe

Mediante el componente TQuickreport podemos predefijar el tamaño de papel, los márgenes, el número de columnas o el espaciado entre éstas.

Todos estos elementos forman parte de la propiedad Page, un objeto TQRPage que cuenta, entre otras, con las propiedades PaperSize, LeftMargin, RightMargin, Orientation y Colunms. Los valores de muchas de estas propiedades vienen expresados por defecto en milímetros, unidad de medida que podemos cambiar alterando la propiedad Units.

Además de los títulos que podamos disponer en las diferentes secciones del informe, y que nos pueden servir para encabezar diversos apartados, columnas, etc, en el informe existe un título general que es el que se almacena en la propiedad reporttitle del componente TQuickReport. Muchos de los parámetros de impresión, como el número de copias, la bandeja de papel a utilizar o el rango de páginas a imprimir, los estableceremos con la propiedad PrinterSettings, que al igual que Page contiene una serie de propiedades como FirtsPage, LastPage, Copies u OutputBin.

Con el fin de facilitar la alineación de los componentes de datos, en el interior del QuickReport existen una serie de líneas de división, una cuadricula, numerada en la unidad de medida que hayamos seleccionado. La propiedad Page dispone de una propiedad, llamada Ruler, mediante la cual podremos mostrar u ocultar esa cuadricula.

Información durante la ejecución

Una vez que el informe ha sido preparado, durante la ejecución podemos obtener alguna información acerca de él partiendo de ciertas propiedades. La preparación del informe se realiza automáticamente, antes de mostrarlo en pantalla o imprimirlo, aunque también es posible realizar la preparación, sin más, con una simple llamada al método Prepare().

Mediante la propiedad RecordCount podemos saber el número de registros que van a formar parte del informe, mientras que la propiedad RecordNumber nos facilita el número de registro que se está procesando actualmente. Podemos también conocer el número de página actual con la propiedad PageNumber.

Visualización e impresión del informe

Estando el informe ya diseñado podemos optar por visualizarlo o bien imprimirlo directamente. Para ello disponemos de los métodos Preview() y Print(). Lo primero que ocurre cuando se llama a cualquiera de estos métodos, es que se prepara el informe, proceso en el cual se puede invertir mas o menos tiempo dependiendo de la cantidad de datos a manipular y la relación que pueda existir entre ellos.

Fuente

  • Jack Díaz Iglesias y Franklin Pérez González. Delphi 5 Básico. 2001