Desenvolvimento - Delphi

Fortes Report - Tutorial - Parte 1

Neste artigo veremos como fazer um relatório simples usando um outro componente bem parecido com o Quick Report, que já vem com o Delphi, porém com várias vantagens que poderemos ver em futuros artigos que serão publicados no portal.

por George De Luca




Desenvolvendo o Primeiro Relatório
Amigos, fazer relatórios é o famoso mal necessário, que particularmente eu não me incomodo em desenvolver, até porque, geralmente é a parte mais rentável do negócio !

Ao final do artigo tem o link onde você poderá baixar este componente e ensina como instalar. Bom, mas deixemos de delongas e vamos ao trabalho...

Primeiros Passos
Não vou me prender em detalhes de banco e conexão.
Eu usei um banco de dados de exemplo em Firebird que se encontra na pasta Examples do mesmo.
Abra um projeto novo no Delphi e renomeie o formulário corrente para frmChamaRel, coloque um Data Module e chame-o de dmDados e um segundo formulário para frmRelEmpregados.
Coloque os componentes no Data Module como mostra a Figura 1, apontando o SQLConnection para o banco EMPLOYEE.FDB da pasta C:\Arquivos de programas\Firebird\Firebird_1_5\examples.


Figura 1. Data Module com os componentes de conexão


Coloque o SQL descrito na Listagem 1 no SQLDataSet na propriedade CommandText:


Listagem 1 – SQL do relatório

select e.emp_no, e.first_name, e.last_name, e.phone_ext, e.job_country, d.department
from employee e
Inner join department D On d.dept_no = e.dept_no

Ligue os componentes e vamos seguir em frente...


Criando o Relatório
Agora vamos começar a brincadeira com o Fortes Report.
Vá para o form frmRelEmpregados.
Adicione no formulário o componente RLReport da paleta do Fortes (Fortes Report) e posicione-o conforme a Figura 2.


Figura 2. Posicionamento de RLReport no formulário de impressão


Este componente é o que faz toda a manipulação dos outros componentes de impressão que já iremos ver.
Pressione Alt+F11 para dar um Uses na unit do DataModule dmDados.
Inclua um DataSource a este formulário e aponte a propriedade DataSet ao ClientDataSet do DataModule.
Inclua agora três componentes RLBand ao RLReport e modifique as propriedades dos componentes do relatório como descrito na Tabela 1.


Componente

Propriedade

Valor

RLReport1

DataSource

DataSource1


Title

Relatório de Empregados

RLBand1

BandType

btHeader


Color

ClSilver


Font/Style/fsBold

True

RLBand2

BandType

btHeader


Font/Style/fsBold

True

RLBand3

BandType

btDetail

RLBand3

BandType

btFooter

Tabela 1. Valores para as propriedades dos comp. do relatório


Na primeira banda do relatório, o título do relatório, insira um componentes RLLabel e dois RLSystemInfo.
Altere as propriedades como descrito na Tabela 2.


Componente

Propriedade

Valor

RLLabel1

Align

faLeftTop


Caption

linhadecodigo.com.br

RLSystemInfo1

Align

faCenterTop


Info

itTitle

RLSystemInfo2

Align

faRightTop


Info

itPageNumber


Text

Pág.:

Tabela 2. Valores para as propriedades da banda de título


Posicione agora na segunda banda do relatório, RLBand, insira seis RLLabel e altere as propriedades como descrito na Tabela 3.


Componente

Propriedade

Valor

Todos

Align

faTopOnly

RLLabel2

Caption


Left

0

RLLabel3

Caption

Nome


Left

48

RLLabel4

Caption

Sobrenome


Left

200

RLLabel5

Caption

Ramal


Left

392

RLLabel6

Caption

País


Left

448

RLLabel7

Caption

Departamento


Left

592

Tabela 3. Valores para as propriedades da banda de título


Na banda de detalhe, insira seis RLDBText, que serão os componentes DataWare contendo os dados de cada coluna da tabela. Veja a na Tabela 4 os valores de suas propriedades.


Componente

Propriedade

Valor

Todos

Align

faTopOnly


AutoSize

False


DataSource

DataSource1

RLDBText1

DataField

EMP_NO


Left

0

RLDBText2

DataField

FIRST_NAME


Left

48

RLDBText3

DataField

LAST_NAME


Left

200

RLDBText4

DataField

PHONE_EXT


Left

392

RLDBText5

DataField

JOB_COUNTRY


Left

448

RLDBText6

DataField

DEPARTMENT


Left

592

Tabela 4. Valores para as propriedades da banda de detalhe


E finalmente vá para a última banda, que é a de rodapé, insira dois RLSystemInfo e altere as propriedades como descrito na Tabela 5.


Componente

Propriedade

Valor

RLSystemInfo3

Align

faRightTop


Info

itDate


Text

Data:

RLSystemInfo4

Align

faRightTop


Info

itHour


Text

Hora:

Tabela 5. Valores para as propriedades da banda do rodapé


E para terminar este formulário, vá no evento BeforePrint e coloque a seguinte linha em negrito descrita abaixo em negrito:


procedure TfrmRelEmpregados.RLReport1BeforePrint(Sender: TObject;

var PrintIt: Boolean);

begin

dmDados.ClientDataSet.Open;

end;


Este evento irá abrir o ClientDataSet antes do início da impressão.

Salve este formulário e vá para o formulário (frmChamaRel) que irá chamar o relatório.

O resultado final ficará como a Figura 3.


Figura 3. Posicionamento de de todos os componentes em RLReport no formulário de impressão


Chamando o Relatório

Agora iremos programar o formulário para a chamada do relatório propriamente dito.

Insira um RadioGroup e um BitBtn e posicione-os como mostra a Figura 4.


Figura 4. Formulário para chamada do relatório


Aperte Alt+F11 e de um Uses na unit que contém o relatório.

No evento OnClick do botão coloque o código descrito abaixo em negrito:


procedure TfrmChamaRel.BitBtn1Click(Sender: TObject);

begin

If RadioGroup1.ItemIndex = 0 Then

frmRelEmpregados.RLReport1.Preview() // preview do relatório

Else

frmRelEmpregados.RLReport1.Print; // imprime direto para impressora

end;



Executando o relatório

O próximo passo é executar o relatório apertando F9 no Delphi.

Já executando, marque a primeira opção do RadioGroup e clique no botão “Imprimir”.

O relatório será mostrado como na Figura 5.


Figura 5. Parte do preview do relatório


E depois, informe a opção “Impressora” e veja como sairá a impressão no papel.


Conclusões

Vimos aqui como podemos fazer um relatório simples em um outro componente bem parecido com o Quick Report, que já vem com o Delphi, porém com várias vantagens que poderemos ver em futuros artigos que serão publicados aqui no site.

Abraço a todos e até a próxima.


Links

www.fortesinformatica.com.br

Site para baixar os componentes do FortesReport, com instruções para instalação.

George De Luca

George De Luca - Analista de sistemas com experiência desde 1994 e pós-graduado (MBA) em gestão empresaria. Experiência em diversos mercados como comércio, indústria, varejo e governamental. Atualmente é CIO da Intersystem em Portugal.