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 |
Nº |
|
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.