Apostila de Programação IV
Módulo V
Fundação Educacional Machado de Assis Escola Técnica Machado de Assis
Curso Técnico em Informática
Prof. José Luís Schiavo Santa Rosa, Maio de 2011.
SUMÁRIO
1
Criando Relatórios
1.1 Introdução ao QuickReport 3 1.2 Usando o QuickReport 3 1.3 Os Componentes do QuickReport 4 1.4 Bandas de Dados 51.5 Os Tipos Possíveis de Bandas 6
1
Criando Relatórios
1.1 – Introdução ao QuickReport
O QuickReport é um conjunto de componentes Delphi concebidos para permitir a criação de relatórios com rapidez e facilidade, possibilitando inclusive a visualização dos relatórios sem a necessidade de impressão o que evita o desperdício de papel em muitas situações nas quais a impressão é desnecessária, e ainda, exportar dados para outros formatos de arquivo, tais como texto ASCII, valores separados por vírgulas (CSV), Microsoft Excel, PDF, Rich Text e HTML.
O QuickReport é escrito em Delphi e portanto, possui também compatibilidade com o modelo Delphi para acesso a bancos de dados, permitido assim a criação de relatórios a partir de dados com origem em qualquer formato ou padrão de banco de dados, sejam os padrões nativos Paradox e dBase, os padrões cliente/servidor como o Interbase, Oracle, DB2, Informix, Sybase ou ainda, de qualquer fonte de dados compatível com ODBC.
1.2 - Usando o QuickReport
Implementar o recurso de Impressão no DELPHI é uma tarefa fácil, tendo em vista que ele possui uma grande quantidade de componentes, caixas de diálogo, funções e ferramentas relacionadas a Impressão.
O QuickReport permite que você projete visualmente Relatórios. Você constrói
relatórios com bandas, adicionando títulos, cabeçalhos e rodapés de página, detalhes, sumários, cabeçalhos e rodapés de grupo, etc. O QuickReport possui um conjunto de componentes nativos que permite ao desenvolvedor desenhar relatórios dentro de um Form do Delphi. Estes componentes executam toda a tarefa de vizualização e impressão de relatórios. Os relatórios podem ser tão complexos e sofisticados quanto for necessário.
A seguir são apresentados dois componentes da guia Dialogs do Delphi, responsáveis pela manipulação das caixas de diálogo padrão para configuração de impressoras e impressão de documentos:
COMPONENTE: DESCRIÇÃO:
PrintDialog
Exibe uma caixa de diálogo padrão Imprimir, onde o usuário poderá escolher qual impressora quer imprimir, o número de cópias, etc.
PrintSetupDialog
Exibe a caixa de diálogo Configurar Impressora para que o usuário configure a impressora antes de imprimir. Também pode ser chamada a partir da caixa de diálogo Imprimir.
1.3 - Os Componentes do QuickReport
O DELPHI possui uma página na sua paleta de componentes chamada QReport. Nesta
página está uma série de componentes relativos à criação de Relatórios baseados em tabelas de um banco de dados.
Para usar os componentes do QReport você terá que adicionar um novo formulário à sua aplicação e em seguida inserir neste formulário o componente QuickReport. Desta forma, o formulário se tornará um Formulário de Relatório; a seguir, ligar o componente QuickReport à origem de dados através da sua propriedade de DataSet, inserir bandas no formulário, e dentro delas colocar os componentes relativos a dados. Finalmente, para imprimir o relatório, executar os Métodos Preview ou Print.
A grande vantagem do QuickReport é a forma de criar um relatório, ela é muito similar à criação das janelas de uma aplicação. Ou seja, você cria um relatório com o
QuickReport da mesma maneira que uma janela no DELPHI, visualmente.
Componentes da guia QReport:
A seguir, a descrição dos principais componentes:
COMPONENTE: DESCRIÇÃO:
QuickReport É o principal componente na execução da impressão. Transforma
um formulário comum em um formulário de relatório.
QRSubDetail Usado para criar qualquer tipo de relatório Master/Detail
(um-para-vários).
QRBand Um relatório é construído em Bandas (regiões). Estas regiões
podem ser: cabeçalho, detalhes, rodapé, etc.
QRChildBand
Se você tem Bandas com componentes expandidos movidos para baixo adequadamente, você pode criar uma banda fina e os componentes que serão movidos nela.
QRGroup Permite que se agrupe os registros em blocos, com pelo menos
uma característica em comum.
QRLabel Mostra um texto no relatório. Normalmente é utilizado para
representar títulos, tais como Cabeçalho de Colunas.
QRDBText Mostra o conteúdo de um determinado campo do DataSet
(Tabela ou Query). Também imprime campos Memo.
QRExpr Avalia e imprime qualquer expressão QuickReport. Permite
também usar campos de banco de dados em expressões.
QRSysData Exibe informações do sistema, tais como: data, hora, número de
página, título do relatório, etc.
QRMemo Usado para imprimir um texto com múltiplas linhas. Normalmente
usado para áreas longas de texto estático.
QRRichText Exibe um componente Memo do tipo RichText. Pode ser ligado a
um componente RichText no formulário e imprimir o conteúdo.
QRDBRichText Tal qual QRRichText, só que para Campos de banco de dados
(Data-Aware).
QRShape Adiciona objetos de desenho (retângulo, circunferência, linhas
horizontais e verticais) ao formulário.
QRDBImage Usado para imprimir imagens armazenadas em Campos Binários
(BLOB).
QRPreview Possibilita que você crie seu próprio formulário de Preview
(Visualização) de impressão.
QRChart Liga os componentes TChart ou TDChart com oQuickReport.
1.4 - Bandas de Dados
O QuickReport gera relatórios usando bandas. Você constrói seus relatórios adicionando o componente TQRBand ( um tipo especial de TPanel ) ao TQuickReport. Cada banda do seu relatório possui uma finalidade diferente no resultado final. Um relatório pode ter várias bandas de tipos diferentes e/ou iguais.
1.5 - Os Tipos Possíveis de Bandas
Title : Representa o título do relatório. É impressa apenas uma vez durante todo o
relatório: no início da primeira página. Você pode ter várias bandas deste tipo: elas serão impressas uma após a outra, no início da primeira página.
PageHeader : Essa banda é impressa uma vez a cada início de página. Para cada
página do relatório existe uma impressão de uma banda deste tipo. Na primeira página esta banda também é impressa. Você pode ter várias bandas deste tipo no relatório, que elas serão impressas uma após a outra automaticamente.
ColumnHeader : Esta banda se assemelha bastante com a PageHeader, com a única
diferença de que ela é impressa no topo de cada coluna, num relatório de várias colunas na mesma página.
Detail : Esta banda é repetida para cada registro de dados do seu relatório.
Usualmente existe somente uma banda Detail em cada relatório, embora seja possível colocar mais de uma.
PageFooter : A banda PageFooter é impressa no final de cada página do relatório.
Funciona como a PageHeader , com a diferença que é impressa embaixo da página.
Summary : É impressa na última página depois de todas as bandas de detalhe.
SubDetail : É um tipo de banda especial usada pelo componente TQRSubDetail.
Serve para efetuar relatórios Master / Detail. Não configure este tipo de banda manualmente.
GroupHeader : Este tipo de banda é usualmente usada para a agrupar valores ( em
relatórios Master/Detail ) e você pode efetuar um somatório em pequenos grupos de valores, dependendo de uma certa condição.
GroupFooter : É um tipo que serve como finalizador para a banda GroupHeader. Child : É um tipo especial de banda, usada pelo componente TQRChilBand. Não
configure este tipo manualmente.
1.6 - Ordem de Impressão das Bandas
Não importa que ordem as banda aparecem em tempo de desenvolvimento no seu relatório. Elas sempre aparecerão na ordem correta na hora da impressão. Vamos aqui mostrar qual é a ordem seguida pelo QuickReport.
PageHeader (para todas as páginas) Title (primeira página) ColumnHeader
(para todas as colunas) Detail (repetida para todos os registros principais do relatório) SubDetail (caso haja um) Summary (última página) PageFooter (para todas as páginas).