Vous êtes sur la page 1sur 26

Delphi Standard

Delphi Standard

Impacta Tecnologia Ltda

Av. Paulista, 1106 – 7º Andar


Cerqueira César - Cep 01310-100 - São Paulo – SP
Tel: [11] 3285-5566 – Fax: [11] 288-0984

Primeira Edição

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r

[Mês] [Ano]
Índice

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
Objetivos do Treinamento

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
Capítulo 8

Relatórios com Rave


Reports

Neste capítulo, você aprenderá:

Relatório Simples

Relatório com quebra de grupo

Totalizações

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Preparando a Aplicação
Tomando como base a nossa aplicação final, vamos selecionar o Data Module
dmEmp e colocar nele 3 componentes da palheta Rave:

RvProject: Responsável pela ligação entre o projeto Delphi e o projeto de


relatórios Rave.

RvDataSetConnection: Exporta um DataSet do projeto Delphi para o projeto


Rave.

RvSystem:Responsável pelo envio do relatório para a impressora ou para a tela


de Preview.

Configuração dos componentes Rave na aplicação Delphi

RvDataSetConnection Name: rvdsEmp


DataSet: tbEmp

RvSystem Name: rvsysEmp


TitlePreview: Previsão do Relatório
TitleSetup: Opções de Impressão
TitleStatus: Status de Impressão

RvProject Name: rvprjEmp


Engine: rvsysEmp

Agora execute um duplo clique sobre o componente RvProject para abrir o


Rave Visual Designer.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Rave Visual Designer


Configurações Gerais

File - New
File Save: Empregados.rav

Palhetas de
Barra de componentes
ferramentas

Painel da
Árvore de
objetos

Painel de
Propriedades

A Página
Explicação sobre
a propr. atual

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Na Árvore de Objetos, selecione RaveProject e, no Painel de Propriedades, altere a


propriedade Units para unMM (milímetros)

Na Árvore de Objetos, selecione Report Library, e dentro dele selecione Report1. No


Painel de Propriedades, altere as propriedades:

F ullName: Relatório Geral de Empregados


Name: rptEmpGeral

Ainda na Árvore de Objetos, selecione Page1 e no Painel de Propriedades, configure as


seguintes propriedades.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Acesso aos Dados

Para termos acesso aos dados que iremos imprimir, precisamos criar um Data Object. Para
isso você seleciona File - New Data Object, ou então clica no botão correspondente da

barra de ferramentas - . Aparecerá a tela:

Selecione Direct Data View. Isto nos dará acesso


aos DataSets criados dentro do nosso projeto
Delphi. Depois clique Next.

Aparecerão todos os componentes


RvDataSetConnection que colocamos no projeto
Delphi, no nosso caso, apenas 1. Selecione-o e
clique Finish.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Na Árvore de Objetos, veremos todos os campos


de tbEmp. Selecione DataView1 e altere as
propriedades mostradas acima.

Comentários:_______________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Desenhando o Relatório

Nas palhetas de componentes, selecione a palheta Report e traga para a Página um

componente Region . Ele determina e delimita a área de impressão da página.

Redimensione o componente Region de modo que ocupe quase toda a área da folha. Deixe
uma área livre no final da página, lá criaremos nosso rodapé de página.

componente
Region
redimensionado

rodapé de página

Nas palhetas de componentes, selecione a palheta Report e traga para Region1 um

objeto Band - - e um objeto DataBand - . Eles serão usados para criarmos as


áreas de impressão do relatório.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Eles aparecerão no topo de Region1.

Com o objeto Band1 selecionado, altere as seguintes propriedades:

BandStyle:
Selecione:

Body Header (Cabeçalho)

First (Primeira página)


New Page (Nova página)

ControllerBand: DataBand1
Name: PageHeader

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Selecione o objeto Band2 e altere as propriedades:

DataView: dvEmp
Name: Detalhe

Os ícones à esquerda de cada banda mudarão, como mostra a figura.

Traga um componente BitMap da palheta


Standard e coloque sobre a banda de cabeçalho.

Altere a sua propriedade Image, selecionando uma figura do disco. Altere também
a propriedade MatchSide para msBoth, isto fará a figura ocupar toda a área do
componente.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Para colocar os títulos no cabeçalho de página, utilize o componente Text - -da


palheta Standard. Altere as propriedades:

Text: RELATÓRIO GERAL DE FUNCIONÁRIOS


FontJustify: pjCenter
Font: Aumente o tamanho da fonte, o seu nome e estilo de acordo com a sua
preferência.

Aumente a largura e a posição do componente Text para que fique centralizado


horizontalmente.

Coloque um subtítulo com o nome da sua empresa.

Para exibir a data de impressão do relatório, traga para o cabeçalho um componente


DataText da palheta Report. Na sua propriedade DataField, clique nos pontinhos...

Em Report Variables, selecione


DateShort

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Clique no botão Insert Report Var e a variável selecionada será inserida no quadro
Data Text.

Depois escreva em Data Text, um título para a variável que foi inserida.

Para colocarmos uma linha separando o cabeçalho do restante da página, selecione

a palheta Drawing e traga um componente HLine - . Utilize as propriedades


LineWidth, Color etc.. para configurá-la como desejado.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Agora vamos montar a banda de detalhe. Este relatório será um relatório no formato de
ficha, semelhante a um crachá. Por isso não teremos cabeçalho de colunas.

Traga para a banda de detalhe, um componente BitMap da palheta Standard. Altere seu
tamanho e posição como mostra a figura.

Altere as propriedades:

DataView: dvEmp
DataField: FOTO

Vamos agora montar os títulos dos campos que aparecerão na banda de detalhe. Para isso,
traga 6 componentes Text da palheta Standard e configure-os como mostra a figura.

Com a tecla CONTROL pressionada, arraste cada


campo da Árvore de Objetos, para a posição
correspondente na banda de detalhe.

Aparecerá um componente DataText, devidamente


configurado para exibir o campo.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Pressione a tecla F9 para ver como está o resultado do relatório.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Para colocar uma numeração de página no final de cada página, coloque um componente
DataText (Report) no final da página e fora de Region1. Na sua propriedade DataField
coloque:

'Página ' + Report.CurrentPage + '/' + Report.TotalPages

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Relatório com Quebra de Grupo

No mesmo projeto de relatório (Empregados.rav) criaremos um segundo relatório.


Selecione File - New Report.

Na árvore de objetos (à direita), selecione o novo relatório (Report1) e altere as


propriedades:

FullName: Empregados Por Departamento


Name: frmEmpDepto

Verifique também as medidas da folha em Page1.

Traga para a página, um componente Region (Pág. Report). e traga para dentro dele:

2 componentes Band (Report)


1 componente DataBand (Report)
2 componentes Band (Report)

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Altere as suas propriedades Name (de cima para baixo) para:

PageHeader Cabeçalho de página


GroupHeader Cabeçalho de grupo
Detail Detalhe
GroupFooter Rodapé de grupo
ReportFooter Rodapé de relatório

Para cada banda, altere as seguintes propriedades:

PageHeader: BandStyle - Selecione Body Header e First


ControllerBand - Detail

GroupHeader: BandStyle - Selecione Group Header e First


ControllerBand - Detail
GroupDataView - dvEmpregados
GroupKey - COD_DEPTO
StartNewPage - True

Detail: DataView - dvEmp

GroupFooter: BandStyle - Group Footer e First


ControllerBand - Detail
GroupDataView - dvEmpregados
GroupKey - COD_DEPTO

ReportFooter: BandStyle - Body Footer


ControllerBand: Detail

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Monte a banda PageHeader de forma semelhante ao que foi feito no relatório geral.
Altere apenas o título principal.

A banda GroupHeader terá a seguinte aparência:

Text (Standard) DataText (Report) HLine (Drawing)

Text (Standard)

Para a banda de detalhe, segure a tecla CONTROL e arraste os campos desejados para
dentro da banda. Utiliza a propriedade FontJustify para alinhar os campos CODFUN e
SALARIO à direita.

Para as bandas GroupFooter e ReportFooter, utilize o componente CalcText - - da


palheta Report para efetuar os cálculos de totalização.

Altere as propriedades: CalcType: ctSum


ControllerBand: Detail
DataView: dvEmp
DataField: SALARIO
DisplayFormat: #,##0.00
FontJustify: pjRight

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

A aparência final do relatório ficará como mostra a figura:

Primeira página:

Última página:

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Imprimindo o Relatório no Delphi

Retorne ao Delphi e selecione o Data Module dmEmp. Selecione o componente RvProject


(rvprjEmp), e na sua propriedade ProjectFile, selecione o arquivo Empregados.rav que
acabamos de gerar no Rave Visual Designer.

Em seguida, vamos pedir para armazenar o arquivo RAV dentro do projeto Delphi, desta
forma, não precisaremos instalar o arquivo RAV na máquina do usuário. Selecione a
propriedade StoreRAV e clique no botão Load para que ele leia o arquivo.

Obs.: Se houver qualquer alteração posterior do arquivo RAV, este processo deverá
ser repetido.

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Vamos agora crias as procedures para os Actions actRelGeral e actRelDepto:

procedure TfrmEmp.actRelGeralExecute(Sender: TObject);


begin
dmEmp.rvprjEmp.ExecuteReport('rptEmpGeral');
end;

procedure TfrmEmp.actRelDepExecute(Sender: TObject);


var sIndice: string;
begin
sIndice := dmEmp.tbEmp.IndexFieldNames;
dmEmp.tbEmp.IndexFieldNames:='COD_DEPTO';
//------------------------------------
dmEmp.rvprjEmp.ExecuteReport('rptEmpDepto');
//------------------------------------
dmEmp.tbEmp.IndexFieldNames := sIndice
end;

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

Exercícios de Fixação

1.Para exibir um título de relatório, você utiliza o componente _________ que


está na palheta ______________.

a) DataText, Standard
b) DataText, Report
c) Text, Standard
d) Text, Report
e) Label, Standard

2. Para exibir o conteúdo de um campo, você utiliza o componente _______


que está na palheta ____________

a) DataText, Standard
b) DataText, Report
c) Text, Standard
d) Text, Report
e) Label, Standard

3. Para fazer uma totalização de grupo ou geral, você utiliza o componente


________ da palheta __________.

a) DataText, Report
b) Text, Standard
c) CalcText, Report
d) CalcText, Drawing
e) CalcText, Standard

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
8 Relatórios com Rave Reports

4. O componente Delphi chamado __________ é responsável pela ligação entre


o projeto Delphi e o projeto Rave.

a) RvDataSetConnection
b) RvSession
c) RvProject
d) RvRaveConnection
e) RvRaveProject

5. O componente Delphi chamado __________ exporta um DataSet do Delphi


para o projeto Rave.

a) RvDataSetConnection
b) RvSession
c) RvProject
d) RvRaveConnection
e) RvRaveProject

w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r
w w w . f i t i . c o m . b r w w w . i m p a c t a . c o m . b r