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: [Link]
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 ' + [Link] + '/' + [Link]
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 ([Link]) 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 [Link] 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 [Link](Sender: TObject);
begin
[Link]('rptEmpGeral');
end;
procedure [Link](Sender: TObject);
var sIndice: string;
begin
sIndice := [Link];
[Link]:='COD_DEPTO';
//------------------------------------
[Link]('rptEmpDepto');
//------------------------------------
[Link] := 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
[Link] 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