Академический Документы
Профессиональный Документы
Культура Документы
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
QuickRep
QuickRep. Propiedades
DataSet
ReportTitle
QRBand
QRBand Permite indicar las secciones del informe. Por ejemplo: ttulos, cuerpo, pie de pgina, etc.
Seminario de Lenguajes Opcin Delphi Curso 2007 7
Bandas
El reporte est organizado en bandas. Cada banda posee una frecuencia de impresin distinta.
Ejemplo Reportes.dpr
Reporte Sencillo
10
11
12
Ejemplo Reportes.dpr
Sobre una aplicacin Nueva agregar un mdulo de datos
14
a) Reporte Sencillo
Agregar adems un nuevo Formulario al que llamaremos FListadoSencillo. Sobre FListadoSencillo pegar:
DataSet
para que seale a la EJEMPLO1.DBF (del mdulo de datos) ReportTitle asignndole Agenda.
tabla
15
16
Bandas
Agregar 4 componentes QRBand. Propiedad BandType: Representa a cada una de las secciones del reporte :
18
Componente QRSysData
QRSysData
Permite 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: Ttulos
Insertar 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)
20
Propiedad Data=qrsDate
21
Componente QRLabel
QRLabel
Permite imprimir un texto fijo. Modifique la propiedad Caption para indicarlo.
22
Componente QRDBText
QRDBText
Permite imprimir el contenido de un campo de una tabla o de una consulta. Es necesario indicar las propiedades:
27
Propiedad BandType=rbPageFooter Pegar en esta banda un componente QRSysData modificando su propiedad Data=qrsPageNumber
28
29
Reporte sencillo
30
Ejecutar
Seminario de Lenguajes Opcin Delphi Curso 2007 31
32
Ejemplo
Agregar un nuevo formulario llamado FGrupos. Para no rehacer todo lo anterior, pegar sobre FGrupos una copia del componente QuickRep del formulario FListadoSencillo
34
Componente QRGroup
QRGroup
Permite 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 QRGroup
Propiedades
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.
36
37
38
Propiedad Expression
Expression = copy(nombre,1,1)
39
42
select R.*, A.* from revistas R, Articulos A where (R.id_revista = A.id_revista) order by fecha desc, R.id_revista, pagina
Componente QuickRep Propiedades - DataSet = Query1 - ReportTitle = Catlogo de Revistas - Page - Columns = 2 - ColumnSpace = 0,5 mm
Seminario de Lenguajes Opcin Delphi Curso 2007 43
QRSysData
QRLabel
QRDBText
QRExpr
Propiedad Expression = COUNT
Seminario de Lenguajes Opcin Delphi Curso 2007 45
QRDBImage
QRDBRichText
46
Qu falta?
47
48
var linea : string; buscado : string; begin buscado := Query1.fieldbyname('id_revista').asString; QGrupos.close; QGrupos.ParamByName('codigo').asString := buscado; QGrupos.Open; linea := ''; while not QGrupos.Eof do begin linea := linea + QGrupos.fieldbyname('grupo').asString+ ' - '; QGrupos.next; end; if linea<>'' then linea := copy(linea,1,length(linea)-3); QRLabelTemas.Caption := 'Temas : '+linea; end;
Seminario de Lenguajes Opcin Delphi Curso 2007 49
Un Query con parmetros puede tomar los valores correspondientes en forma automtica desde otro Query o Table asociado a un DataSource. Para hacerlo, deben coincidir el nombre de cada campo con el de cada parmetro. La actualizacin se realiza cada vez que cambia el registro actual del maestro.
50
Propiedades - DataSource = DataSource1 - SQL Agregado para poder relacionar el segundo Query con el primero
select distinct grupo from articulos A where A.id_revista = :id_revista
- Active = TRUE