aprendendo rave
DESCRIPTION
Primeiros passo com Rave ReportsTRANSCRIPT
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Delphi Standard
Delphi Standard
Primeira Edição
[ M ê s ] [ A n o ]
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
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Índice
w w w . fi 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 . fi 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
Relatório Simples
Relatório com quebra de grupo
Totalizações
Neste capítulo, você
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Rave Visual Designer
Configurações Gerais
File - New
File Save: Empregados.rav
Painel da Árvore de objetos
Painel de Propriedades
Explicação sobre a propr. atual
A Página
Palhetas de componentes
Barra de ferramentas
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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:
FullName: Relatório Geral de Empregados
Name: rptEmpGeral
Ainda na Árvore de Objetos, selecione Page1 e no Painel de Propriedades,
configure as seguintes propriedades.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Na Árvore de Objetos, veremos todos os
campos de tbEmp. Selecione DataView1 e
altere as propriedades mostradas acima.
Comentários:_______________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
__________________________________________________________________________
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
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.
rodapé de página
componente Region redimensionado
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Eles aparecerão no topo de Region1.
Com o objeto Band1 selecionado, altere as seguintes propriedades:
BandStyle:
ControllerBand: DataBand1
Name: PageHeader
Selecione:
Body Header
(Cabeçalho)
First (Primeira página)
New Page (Nova página)
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
Pressione a tecla F9 para ver como está o resultado do relatório.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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)
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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:
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
Text (Standard)
DataText (Report)
HLine (Drawing)
Text (Standard)
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
A aparência final do relatório ficará como mostra a figura:
Primeira
página:
Última
página:
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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.
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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;
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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
Relatórios com Rave Reports8
w w w . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r
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 . fi t i . c o m . b r w w w . i m p a c t a . c o m . b r