capitulo 9 criando relatorios com o quickreport

3
OBJECT PASCAL DELPHI Capítulo 9 CRIANDO RELATÓRIOS COM O QUICK REPORT Pág.44 CAPÍTULO 9 - CRIANDO RELATÓRIO COM O QUICKREPORT QuickReport A partir da varsão 2.0, o Delphi oferece um novo grupo de componentes para criação de relatórios: é o grupo de componentes Qreport. Com estes componentes, você pode criar relatórios bastante sofisticados, com agrupamentos e cálculos, sem precisar usar o Report Smith, gerenciador de relatórios que acompanha o Delphi. Estrutura de Relatório QuickReport Os relatórios são normalmente associados às Tabelas, cujos dados serão lista- dos. Para ligar o relatório à Tabela, você deve inserir no formulário onde será montado o relatório um componente QuickReport. Mude a propriedade DataSet para o nome do componente DataSource ligado à Tabela. Os relatórios do QuickReport são divididos em sessões (bands), entre elas: ca- beçalho (Page Header), título (Title), título das colunas(Column Readers), corpo (De- tails), sumario (Summary) e rodapé (Page footer): Para criar o relatório, você deve primeiro inserir estas sessões no formulário, e depois, sobre estas sessões, inserir os dados que constarão do formulário. Estas sessões são inseridas através do componente QrBand: Para definir o tipo de sessão, mude a propriedade BandType do componente que Qrband. Esta propriedade poderá ter os seguintes valores: rbTitle: corresponde ao título do relatório. Esta sessão é impressa automatica- mente na primeira página do relatório. A propriedade TitleBeforeReader decide se o cabeçalho ou o titulo aparecerão primeiro na primeira página. rbPageReader: corresponde ao cabeçalho. Esta sessão é impressa automati- camente no início de cada página do relatório. rbDetail: corresponde ao corpo do relatório. É impressa um vez para cada re- gistro de sua tabela. RbSubDetail: corresponde ao corpo da parte de detalhe de um relatório Master Detail. rbPageFooter: corresponde ao rodapé do relatório. Esta sessão é impressa au- tomaticamente ao final de cada página do relatório.

Upload: igorfsilva

Post on 31-Oct-2015

90 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Capitulo 9 Criando Relatorios Com o Quickreport

OBJECT PASCAL – DELPHI

Capítulo 9 – CRIANDO RELATÓRIOS COM O QUICK REPORT Pág.44

CAPÍTULO 9 - CRIANDO RELATÓRIO COM O QUICKREPORT

QuickReport

A partir da varsão 2.0, o Delphi oferece um novo grupo de componentes para criação de relatórios: é o grupo de componentes Qreport.

Com estes componentes, você pode criar relatórios bastante sofisticados, com agrupamentos e cálculos, sem precisar usar o Report Smith, gerenciador de relatórios que acompanha o Delphi.

Estrutura de Relatório QuickReport

Os relatórios são normalmente associados às Tabelas, cujos dados serão lista-dos. Para ligar o relatório à Tabela, você deve inserir no formulário onde será montado o relatório um componente QuickReport.

Mude a propriedade DataSet para o nome do componente DataSource ligado à Tabela.

Os relatórios do QuickReport são divididos em sessões (bands), entre elas: ca-beçalho (Page Header), título (Title), título das colunas(Column Readers), corpo (De-tails), sumario (Summary) e rodapé (Page footer):

Para criar o relatório, você deve primeiro inserir estas sessões no formulário, e depois, sobre estas sessões, inserir os dados que constarão do formulário.

Estas sessões são inseridas através do componente QrBand:

Para definir o tipo de sessão, mude a propriedade BandType do componente que Qrband. Esta propriedade poderá ter os seguintes valores:

rbTitle: corresponde ao título do relatório. Esta sessão é impressa automatica-mente na primeira página do relatório. A propriedade TitleBeforeReader decide se o cabeçalho ou o titulo aparecerão primeiro na primeira página.

rbPageReader: corresponde ao cabeçalho. Esta sessão é impressa automati-camente no início de cada página do relatório.

rbDetail: corresponde ao corpo do relatório. É impressa um vez para cada re-gistro de sua tabela.

RbSubDetail: corresponde ao corpo da parte de detalhe de um relatório Master Detail.

rbPageFooter: corresponde ao rodapé do relatório. Esta sessão é impressa au-tomaticamente ao final de cada página do relatório.

Page 2: Capitulo 9 Criando Relatorios Com o Quickreport

OBJECT PASCAL – DELPHI

Capítulo 9 – CRIANDO RELATÓRIOS COM O QUICK REPORT Pág.45

rbSummary: corresponde ao resumo do relatório, normalmente onde são mos-trados os cálculos referentes a somas, as contagens, etc. Esta sessão é impressa ape-nas no final do relatório.

rbGrupReader: corresponde ao cabeçalho dos agrupamentos.

rbGroupFooter: corresponde ao rodapé dos agrupamentos.

rbColumnReader: corresponde ao título das colunas. Será impresso no topo de cada coluna.

rbOverlay: é uma sessão que aparecerá em todas as páginas. Ideal para inser-ção de um texto ou gráfico que deverá se repetir em todas as páginas.

Criando Relatórios com QuickReport.

Vamos construir um relatório contendo as seções Page Header, Title, Column, Summary e Page Footer.

1. Abra um novo formulário através do File | New Form;

2. Insira um componente table no formulário, mudando a propriedade DataBa-seName para o nome ou caminho do banco de dados, e a propriedade Ta-bleName para o nome da Tabela;

3. Insira um componente DataSource, mudando sua propriedade DataSet para o nome o componente Table inserido;

4. Insira um componente QuickReport, mudando a sua propriedade DataSource para o nome do componente DataSource;

5. Insira um componente QRBand no formulário, posicionando-o no topo do formulário. Este componente irá representar o cabeçalho do relatório, por tan-to, vamos mudar a propriedade BandType deste componente para rbPage-Header.

Note que você não consegue mover a seção no formulário, porque a proprieda-

de Align do componente QRBand está igual a alTop, que força a permanência da se-ção no topo do formulário. Para mudar sua posição ou tamanho, você deve mudar a

propriedade Align para AlNome.

6. Insira outro componente QRBand no formulário, posicionando-o abaixo do componente anterior. Este componente irá representar o titulo do Relatório, portanto, vamos mudar a propriedade BandType deste componente para rb-Title:

7. Insira outro componente QRBand no formulário, posicionando-o abaixo do componente anterior. Este componente irá representar o titulo das Colunas, portanto, vamos mudar a propriedade BandType deste componente para rb-ColumnHeader:

8. Insira outro componente QRBand no formulário, posicionando-o abaixo do componente anterior. Este componente irá representar o corpo do relatório, portanto, vamos mudar a propriedade BandType deste componente para rb-Detail:

9. Insira outro componente QRBand no formulário, posicionando-o abaixo do componente anterior. Este componente irá representar o sumário do relatório, portanto, vamos mudar a propriedade BandType deste componente para rb-Summary:

10. Finalmente, insira outro componente QRBand no formulário, posicionando-o abaixo do componente anterior. Este componente irá representar o rodapé do

Page 3: Capitulo 9 Criando Relatorios Com o Quickreport

OBJECT PASCAL – DELPHI

Capítulo 9 – CRIANDO RELATÓRIOS COM O QUICK REPORT Pág.46

Relatório, portanto, vamos mudar a propriedade BandType deste componen-te para rbPageFooter.

Observe como está seu formulário. Agora, continue:

1. Insira um componente QRSysData sobre a seção de cabeçalho (PageRea-der); este componente fornece diversas informações (numero da página, da-ta, hora e nome do arquivo), definidas na propriedade Data. Por exemplo, pa-ra mostrar o número da página do relatório, mude a propriedade Data para qrcPageNumber, e a propriedade Text para Pág.;

2. Insira um componente QRLabel sobre a seção de Title para representarmos o titulo do relatório;

3. Mude sua propriedade Caption para o titulo do relatório;

4. Insira um componente QRLabel para cada titulo da coluna na seção Colum-nHeading. Mude suas propriedades Caption para o titulo das colunas;

5. Insira na seção Details um componente QRDBText para cada campo da ta-bela que você quer mostrar no relatório, mudando suas propriedades Data-Source para o nome do DataSource, e a propriedade DataField para o nome do campo;

6. Finalmente, insira na seção PageFooter um componente QRDBCalc, que realiza diversos cálculos como soma, média, contagem e etc, definidas na propriedade operation. Por exemplo, para calcular o número de registros in-seridos no relatório, mude a propriedade operation para qrcCount:

Dê um clique com o botão direito do mouse sobre o componente QuickReport e, no Menu que aparece escolha a opção Preview:

É mostrado um Preview do relatório, da forma que este ficará quando impresso. Para voltar ao formulário basta fecha a janela de preview.

Formatando o relatório.

Você pode mudar diversas características do relatório: fonte, alinhamento, espa-çamento entre colunas, etc. Pode também inserir linhas horizontais, imagens, entre ou-tros.

Mudando a Fonte

Para mudar a fonte dos itens inseridos no relatório, basta seleciona-lo e mudar

sua propriedade Font.

Mudando o alinhamento

Para mudar o alinhamento dos itens inseridos no relatório, selecione-o e esco-

lha, na propriedade Alignment, a opção desejada.

Inserindo linhas horizontais.

Você pode inserir linhas horizontais ou verticais em seu relatório, para facilitar a leitura dos dados: para isso insira um componente QRShaper no formulário;

Mude a propriedade qrsHorLine se quiser inserir uma linha horizontal, ou qrs-VerLine se quiser inserir uma linha vertical.

Para estabelecer a largura da linha, defina a propriedade Height;

Redimensione o componente para atender suas necessidades.