Artigo Clube Delphi Edição 40 - QuickReport não-trivial

Veremos nesse artigo como construir relatórios cross-tab e como usar os componentes QRExprMemo e QRCompositeReport. Conheceremos também a herança visual de relatórios.

Esse artigo faz parte da revista Clube Delphi edição 40. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

QuickReport não-trivial

Segredos e técnicas avançadas

Apesar de o Delphi 7 ter trazido um novo gerador de relatórios (o Rave), muitos desenvolvedores ainda utilizam o QuickReport – e o continuarão usando por muito tempo. O objetivo deste artigo não é, de forma alguma, fazer uma comparação do QR com o Rave, mas sim explorar técnicas pouco conhecidas do tradicional gerador de relatórios do Delphi. Veremos como construir relatórios cross-tab e como usar os componentes QRExprMemo e QRCompositeReport. Conheceremos também a herança visual de relatórios.

QuickReport no Delphi 7

O QuickReport não vem instalado no Delphi 7 por padrão, mas é muito fácil instalá-lo. Clique em Component|Install Pacakges>Add e selecione o arquivo $(DELPHI)/Bin/dclqrt70.bpl. Pronto! Já podemos trabalhar com o QuickReport na mais nova versão do Delphi (veja a Figura 1).

Figura 1. Paleta QuickReport instalada no Delphi 7

Criando o banco de exemplo

Para o exemplo desse artigo, usaremos o InterBase como banco de dados. No IBConsole crie um novo banco de dados chamado QR.gdb. Usando o Interactive SQL (ISQL), crie três tabelas (que representam o cadastro de professores de uma universidade):

create table TITULACOES

(ID_TITULACAO integer not null primary key,

 DESCRICAO_TITULACAO varchar(20));

 

create table CURSOS

(ID_CURSO integer not null primary key,

 NOME_CURSO varchar(20));

 

create table PROFESSORES

(ID_PROFESSOR integer not null primary key,

 NOME_PROFESSOR varchar(40),

 ID_CURSO integer not null references CURSOS(ID_CURSO),

 ID_TITULACAO integer not null references TITULACOES(ID_TITULACAO));

Cada professor possui uma titulação (tabela TITULACOES) e está vinculado a apenas um curso (tabela CURSOS). Observe que estamos fazendo algumas simplificações no modelo de dados." [...] continue lendo...

Artigos relacionados