quick report

Download Quick Report

Post on 28-Nov-2014

445 views

Category:

Documents

15 download

Embed Size (px)

TRANSCRIPT

Reportes (salida por impresora)Permiten imprimir informacin contenida en una tabla o en un conjunto de tablas. La informacin puede presentarse directamente o resumirse formando grupos. Tambin pueden agregarse encabezados y/o resmenes al final de pgina.Seminario de Lenguajes Opcin Delphi Curso 2007 1

Quick Reports (QR) Esquema GeneralTodo informe QR debe contar con un componente QuickRep que es el que gestiona los elementos generales actuando como una plantilla. Sobre el componente QuickRep se insertan uno o ms componentes QRBand con los que se establecern las diferentes secciones del informe: cabeceras, cuerpo, pie de pgina, etc.Seminario de Lenguajes Opcin Delphi Curso 2007 2

Quick Reports (QR) Esquema GeneralCada componente QRBand acta como un contenedor donde pueden insertarse componentes QRDBText, QRMemo, QRLabel con los que se especificarn los datos que aparecern en el informe. QRSysData : permite insertar da, hora, nro,de pginas, etc. Los datos que aparezcan en un informe pueden ser agrupados por un campo utilizando un componente QRGroup.Seminario de Lenguajes Opcin Delphi Curso 2007 3

QuickRep

QuickRep Propiedades Dataset ReportTitle

Es la componente bsica del reporte

Seminario de Lenguajes Opcin Delphi Curso 2007

4

QuickRep. PropiedadesDataSet

Indica al reporte de dnde debe obtener los datos. Puede ser Table o Query. Imprimir un rengln por cada registro.

ReportTitle

Contiene el ttulo del reporteSeminario de Lenguajes Opcin Delphi Curso 2007 5

Con doble click sobre la componente QuickRep se accede al editor de opciones

Seminario de Lenguajes Opcin Delphi Curso 2007

6

QRBand

QRBand Permite indicar las secciones del informe. Por ejemplo: ttulos, cuerpo, pie de pgina, etc.Seminario de Lenguajes Opcin Delphi Curso 2007 7

BandasEl reporte est organizado en bandas. Cada banda posee una frecuencia de impresin distinta.

Seminario de Lenguajes Opcin Delphi Curso 2007

8

Ejemplo Reportes.dprReporte Sencillo

Se desea obtener un listado de la agenda ordenada alfabticamente. Utilizar la tabla AGENDA.DBF

Seminario de Lenguajes Opcin Delphi Curso 2007

9

Partes del ReporteSeccin de Ttulos Aparece slo al comienzo de la 1er. Hoja

Seminario de Lenguajes Opcin Delphi Curso 2007

10

Partes del ReporteEncabezado de columna Aparece en todas las pginas permitiendo conocer el ttulos de las columnas.

Seminario de Lenguajes Opcin Delphi Curso 2007

11

Partes del ReporteListado Para mostrar esta informacin bastar con indicar el formato de una nica fila el cual ser aplicado al reporte completo.

Seminario de Lenguajes Opcin Delphi Curso 2007

12

Partes del ReportePie de pgina Aparece al final de cada pgina. Puede utilizarse para imprimir informacin de resumen o, como en ese caso, el nmero de pgina actual.Seminario de Lenguajes Opcin Delphi Curso 2007 13

Ejemplo Reportes.dprSobre una aplicacin Nueva agregar un mdulo de datos

Seminario de Lenguajes Opcin Delphi Curso 2007

14

a) Reporte SencilloAgregar adems un nuevo Formulario al que llamaremos FListadoSencillo. Sobre FListadoSencillo pegar:

Un componente QuickRep (el formulario seconvierte en la hoja de impresin). Modificar las propiedades:

DataSet

para que seale a la EJEMPLO1.DBF (del mdulo de datos) ReportTitle asignndole Agenda.

tabla

Seminario de Lenguajes Opcin Delphi Curso 2007

15

Luego de agregar el componente QuickRep el formulario se ver as

Propiedades DataSet = DM.Agenda ReportTitle = Agenda

Seminario de Lenguajes Opcin Delphi Curso 2007

16

BandasAgregar 4 componentes QRBand. Propiedad BandType: Representa a cada una de las secciones del reporte :

rbTitle rbColumHeader RbDetail rbPageFooter(hay otras)Seminario de Lenguajes Opcin Delphi Curso 2007 17

Luego de agregar las cuatro bandas el formulario se ver as:

BandType = rbTitle BandType = rbColumnHeader BandType = rbDetail BandType = rbPageFooter

Seminario de Lenguajes Opcin Delphi Curso 2007

18

Componente QRSysData

QRSysDataPermite imprimir el ttulo del reporte, el nmero de pgina, la fecha,etc. Modifique la propiedad Data para indicar qu mostrar. Si desea agregar un texto anterior puede indicarlo en la propiedad Text.Seminario de Lenguajes Opcin Delphi Curso 2007 19

BANDA 1: TtulosInsertar dentro de esta banda dos componentes de tipo QRSysData:

Fecha del informe: propiedad Data=qrsDate. Ttulo del Reporte Data=qrsReportTitle para que muestre el ttulo. Alignment=taCenter AlignToBand=TRUE Para verlo ms grande, cambie el tipo de letra (propiedad Font)

Seminario de Lenguajes Opcin Delphi Curso 2007

20

Agregar en la 1er. banda dos componentes QRSysData

Propiedades Data=qrsReportTitle Alignment=taCenter AlignToBand=TRUE

Propiedad Data=qrsDate

Seminario de Lenguajes Opcin Delphi Curso 2007

21

Componente QRLabel

QRLabelPermite imprimir un texto fijo. Modifique la propiedad Caption para indicarlo.

Seminario de Lenguajes Opcin Delphi Curso 2007

22

BANDA 2: Cabeceras de pginasEsta banda aparecer en todas las pginas, arriba de los datos, por lo tanto debe llevar la propiedad BandType = rbColumnHeader Por cada columna que contenga el listado insertar un componente QRLabel. Como la idea es formar 4 columnas colocaremos 4 componentes QRLabel con sus captions correspondientesSeminario de Lenguajes Opcin Delphi Curso 2007 23

Agregar en la 2da. banda cuatro componentes QRLabel

Modificar las propiedades Caption. Autosize Transparent Frame (DrawBottom=true)Seminario de Lenguajes Opcin Delphi Curso 2007 24

Componente QRDBText

QRDBTextPermite imprimir el contenido de un campo de una tabla o de una consulta. Es necesario indicar las propiedades:

DataSet = DM.Agenda DataField = Campo a imprimir.Seminario de Lenguajes Opcin Delphi Curso 2007 25

BANDA 3 : Cuerpo del listadoPropiedad BandType=RbDetail. Insertar cuatro componentes QRDBText asociadas a cada campo a listar. Para cada QRDBText

DataSet : DM.Agenda DataField : el campo correspondiente.Ajustar el tamao de la seccin por encima y por debajo de los componente QRDBText para que no aparezcan demasiado separados en la impresin.Seminario de Lenguajes Opcin Delphi Curso 2007 26

Agregar en la 3er. banda cuatro componentes QRDBText

Modificar las propiedades DataSet y DataField

Seminario de Lenguajes Opcin Delphi Curso 2007

27

BANDA 4: Muestra el nro. de hoja

Propiedad BandType=rbPageFooter Pegar en esta banda un componente QRSysData modificando su propiedad Data=qrsPageNumber

Seminario de Lenguajes Opcin Delphi Curso 2007

28

Insertando el nro. de pginaPropiedad Data=qrsPageNumber

Seminario de Lenguajes Opcin Delphi Curso 2007

29

Reporte sencillo

Seminario de Lenguajes Opcin Delphi Curso 2007

30

Visualizacin del reporteEn el formulario principal pegar un botn con el siguiente OnClick:procedure TFReportes.BtnSencilloClick(Sender: TObject); begin ListadoSencillo.QuickRep1.Preview; end;

EjecutarSeminario de Lenguajes Opcin Delphi Curso 2007 31

Agrupando la informacin del reporteSe desea modificar la impresin de la agenda de la siguiente forma:

Seminario de Lenguajes Opcin Delphi Curso 2007

32

Reportes con grupos

OnClick procedure TFReportes.BtnGruposClick(Sender: TObject); begin FGrupos.QuickRep1.preview; end;Seminario de Lenguajes Opcin Delphi Curso 2007 33

EjemploAgregar un nuevo formulario llamado FGrupos. Para no rehacer todo lo anterior, pegar sobre FGrupos una copia del componente QuickRep del formulario FListadoSencillo

Seminario de Lenguajes Opcin Delphi Curso 2007

34

Componente QRGroup

QRGroupPermite dividir el reporte en grupos. Funciona como una banda de cabeza de grupo y puede tener opcionalmente una banda de pie de grupo. Se imprime cada vez que cambie el valor de su propiedad Expression.Seminario de Lenguajes Opcin Delphi Curso 2007 35

Componente QRGroupPropiedades

Expression : maneja el cambio de grupo. Cuando su valor cambia, el encabezado del grupo se vuelve a imprimir. FooterBand : banda de pie de grupo. Seala a una QRBand cuyo valor en la propiedad BandType es rbGroupFooter. ReprintOnNewPage: si vale True, el encabezado de grupo se volver a imprimir en caso que el grupo continue en la pgina siguiente. Por defecto vale False.

Seminario de Lenguajes Opcin Delphi Curso 2007

36

Reporte con gruposAgregar un componente QRGroup

Esta banda corresponde al QRGroup

Seminario de Lenguajes Opcin Delphi Curso 2007

37

Reporte con gruposSobre el QRGroup pegar un QRLabel que mostrar la letraPropiedades: Font Name

Seminario de Lenguajes Opcin Delphi Curso 2007

38

Reporte con gruposEn el componente QRGroup falta indicar:

Propiedad ExpressionExpression = copy(nombre,1,1)

Seminario de Lenguajes Opcin Delphi Curso 2007

39

Reporte con gruposPara mostrar la letra utilizar el evento BeforePrint del QRGroup procedure TFGrupos.QRGroup1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); Var nom : string; begin nom := DM.Agenda.fieldbyname('nombre').asString; QRLetra.caption := copy( nom, 1, 1 ); end;Seminario de Lenguajes Opcin Delphi Curso 2007 40

Reporte con gruposEjecutar

Qu pasa si el contenido de la tabla est desordenado?Seminario de Lenguajes Opcin Delp