Escolar Documentos
Profissional Documentos
Cultura Documentos
Professor: Giuliano
CAPT ULO
UNEB
Professor: Giuliano
Bandas
Os geradores de relatrios atuais trabalham com o conceito de sees, como
Cabealho, Ttulo da Pgina, Rodap da Pgina, Pgina Inicial, ltima Pgina, Linhas
Detalhes, e assim por diante. No QuickReport, essas sees so chamadas de Bandas.
Existem duas formas de colocar bandas num relatrio. A primeira utilizando a rea
Bands da janela da figura 2 (Report Setings), marcando o tipo de banda desejada. Outra
colocar manualmente o componente QRBand sobre o QuickReport.
O componente QRBand possui uma propriedade chamada BandType que determina a
posio e com que frequncia ela ser impressa. Vejamos o que cada opo representa:
Tipo da banda
rbTitle
rbPageHeader
rbDetail
rbPageFooter
rbSummary
rbColumnHeader
rbGroupHeader
rbGroupFooter
rbSubDetail
rbChild
rbOverlay
Posio e Freqncia
Somente uma vez no incio do relatrio
No incio de cada pgina.
Uma vez para cada registro do Dataset
No rodap da cada pgina
No final do relatrio, depois da banda rbDetail
No topo de cada coluna do relatrio. til para imprimir
nomes de campos em relatrios com mais de uma coluna.
Uma vez para cada grupo, antes dos dados. Usado tambm
para fazer os cabealhos da banda QRSubDetail.
Uma vez para cada grupo, depois dos dados.
Tipo especial de banda usada pelo componente QRSubDetail.
No ajuste esse tipo de banda manualmente
Tipo especial de banda usada pelo componente
QRChildBand. No ajuste esse tipo de banda manualmente
No usada na verso 2 do QuickReport. Includa apenas
para manter a compatibilidade com a verso anterior.
UNEB
Professor: Giuliano
Relatrio de Produtos
Cdigo
Descrio
Embalagem
Valor
Estoque
Page Header
Relatrio de Produtos
Cdigo
Descrio
Embalagem
Pgina: (Page#)
Valor
Estoque
Page Header
UNEB
Professor: Giuliano
4. Para que o nosso relatrio imprima os dados a partir de uma tabela, necessrio colocar
um objeto Dataset (Table ou Query), que tambm podem estar num DataModule. No
nosso exemplo, colocaremos um Table (TbProduto) e o conectaremos tabela Produto
Em seguida, selecionamos o componente QuickReport e alteramos sua propriedade
Dataset para TbProduto.
5. Terminada a definio da parte esttica, partiremos agora para a impresso dos dados. O
componente responsvel pela exibio dos campos o QRDBText. Colocaremos cinco
objetos QRDBText na banda Detail, alinhados com os QRLabel do cabealho das colunas.
Para cada QRDBText, alteraremos as propriedades Dataset e DataField, assim como
fazemos num formulrio comum com objetos DataControls.
Relatrio de Produtos
Cdigo
Descrio
Embalagem
[DESCRICAO]
[EMBAL]
Pgina: (Page#)
Preo de Venda
Estoque
Page Header
[CODIGO]
[VALOR]
[ESTOQUE]
Detail
Preview do QuickReport
UNEB
Professor: Giuliano
Relatrios Mestre/Detalhe
Os relatrios mestre/detalhe seguem o mesmo padro visto anteriormente. A nica
diferena que precisamos de uma banda especial para imprimir os registros da parte detalhe,
o QRSubDetail. Um relatrio mestre/detalhe deve possuir as seguintes bandas:
Page Header
Detail
QRSubDetail
Pgina: (Page#)
Page Header
Cliente
Endereo
Vendedor
[CLIENTE]
[ENDERECO]
[VENDEDOR]
Cdigo
Descrio
Qtde
Preco Unit
Preo Total
[DESCRICAO]
[QUANT]
[PRECOUNIT]
[VALORTOTAL]
Total do Pedido:
[TOTALPEDIDO]
Data:
[DATA]
Detail
[CODIGO]
SubDetail
Summary
Totalizando Informaes
Para criar campos que faam algum tipo de clculo baseado nos dados impressos por
um relatrio usaremos o componente QRExpr. comum criar campos de totalizao no final
dos relatrios contendo o somatrio, nmero de registros, mdia ou qualquer outro clculo.
O componente QRExpr possui a propriedade Expression, que abre uma caixa de
dilogo permitindo construir um grande nmero de expresses.
UNEB
Professor: Giuliano
UNEB
Professor: Giuliano
----------
Pgina: (Page#)
Continente: [CONTINENT]
Group Header
Pas: [NAME]
Detail
Definindo Mscaras
A forma com que os dados so impressos num relatrio muito importante. Para
campos numricos, interessante definir a propriedade Alignment dos objetos QRDBText
para taRightJustify. Outra preocupao diz respeito s mscaras. Se o campo for
alfanumrico, faremos da forma que j conhecemos: acessaremos a propriedade EditMask dos
objetos Field (clique duplo no objeto Table ou Query para abrir o Field Editor) e
especificamos a mscara. Se o campo for numrico, precisaremos mudar a propriedade Mask
UNEB
Professor: Giuliano
Operador
#
0
.
,
C
;
Descrio
Se houver um digito na posio ele ser impresso. Caso contrrio, nada impresso.
Se no houver um dgito na posio, um zero ser exibido.
Separador de casas decimais
Separador de milhar
Caracteres entre aspas so exibidos da forma como so informados
Permite formatos diferentes para nmeros positivos, negativos e zero
Exemplo:
FRelPedido.QuickRep1.Preview; // Mostra o relatrio FRelPedido na tela
FRelProduto.QuickRep1.Print; // Imprime o relatrio FRelProduto