NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosLivrodelphibas › Capítulo 5 : 04
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Delphi Básico
Autor: Rodrigo Costa e Silvio Ferreira
Lição 28 de 29 - Criando Relatórios

Além de uma interface para manipulação dos dados, um sistema (por mais simples que seja), requer uma maneira de colocar os dados no papel de uma forma organizada e de fácil visualização. Para isto é que servem os relatórios. Eles não são nada mais que um conjunto de informações do sistema num formato pronto para impressão. Existem diversos editores de relatório para Delphi como o QuickReport e o o Report Builder. Para criar nosso relatório, utilizaremos o novo editor de relatório que foi disponibilizado no Delphi 7: o RaveReports. Os componentes necessários à criação de um relatório usando o RaveReports estão na guia Rave. Precisaremos utilizar somente dois componentes desta guia para montar nosso relatório de contatos:


guia Rave

Insira estes dois objetos ao formulário form_contatos. O Objeto RvProject fará referência ao arquivo do projeto de relatórios que será criado quando fizermos os relatórios no Rave Report. O RvDataSetConnection é o objeto que utilizaremos para conectar ao AdoTable (tbl_contatos).
Renomeie o RvProject para rel_contatos e o RvDataSetConnection para ds_rel_contatos.
Agora ligue o ds_rel_contatos ao AdoTable tbl_contatos através da propriedade DataSet.


Ligando o AdoTable tbl_contatos ao RvDataSetConnection ds_rel_contatos

Agora dê um clique duplo no objeto rel_contatos para iniciarmos nosso relatório. Será exibido o ambiente do Rave Report:


Ambiente do Rave Report

A esquerda temos a janela de propriedades semelhante ao Object Inspector. Na tela principal temos a área de criação do relatório e a direita existe uma outra janela onde estão a Report Library, o Global Page Catalog e o Data View Dictionary.

  • Report Library: possui a lista de relatórios definidos no projeto. Cada relatório pode conter várias páginas.
  • Global Page Catalog: Permite o gerenciamento de modelos e relatórios que podem ser reutilizados posteriormente.
  • Data View Dictionary: Neste item serão apresentados todos os objetos para a conexão com a base de dados.

Na parte superior temos a paleta de componentes para confecção do relatório. A guia Report é a que mais iremos utilizar:


Paleta de Componetes do Rave Report

Acesse a Report Library e selecione o item Report1. Altere a propriedade name para rel_contatos:


Alterando o nome do relatório

Selecione o item Page1 que está abaixo do rel_contatos. Altere a propriedade Orientation para “poPortrait” (Retrato ou Pagina na Vertical) e a propriedade PageSize para A4 (Tamanho do papel).


Alterando as propriedades da página

Vamos agora fazer a conexão com o objeto ds_rel_contatos que configuramos anteriormente. Clique em File > New Data Object.


Criando um objeto de dados para o relatório

Na janela que surgirá, selecione a opção Direct Data View e clique em Next.


Direct Data View

Ele mostrará outra tela, então selecione o objeto ds_rel_contatos para interligar o Rave com a tabela contatos do nosso banco de dados.


Conectando-se ao ds_rel_contatos

Com isso conectamos nosso relatório ao banco de dados. Observe que surge o objeto DataView1 com os campos da tabela contatos no Data View Dictionary. Altere sua propriedade name para “contatos”:


DataView1 renomeado para contatos

Vamos então montar nosso relatório, para isso vá até a guia Report. Veja os principais componentes:


Guia Report

Insira um objeto Region ao relatório. Aumente o objeto de forma que ele ocupe todo o espaço disponível da página. Para facilitar este trabalho, utilize o menu Zoom para ajustar a visualização.


Ajustando a visualização da página


Ajustando o objeto Region1

Em seguida insira um objeto Band. Renomeie o objeto para “cabecalho”.


Renomeando o objeto Band

Na propriedade BandStyle, clique no botão “...” e escolha a opção Body Header e clique em OK. Isso determinará que essa banda será um cabeçalho.


Configurando a Banda como cabeçalho

Insira um objeto Text (guia Standard) na banda Cabeçalho.


Objeto Text

Este objeto serve para mostrar textos assim como o objeto Label do Delphi. Altere a propriedade Text para “Relação de Contatos da Agenda”. Formate a fonte dele como quiser, depois o centralize no relatório.

Acrescente mais 5 objetos Text (guia Standard) no cabeçalho. Selecione o primeiro objeto e altere a propriedade text para “Código”, do segundo para “Nome”, do terceiro para “Endereço”, do quarto para “Telefone” e do quinto para “Email”. Organize-os lado-a-lado, pois serão os títulos da cada coluna do relatório.
Cabeçalho do relatório

Já aprontamos o cabeçalho, falta agora o mais importante: apresentar os dados da tabela contatos. Vá até a guia Report e insira um objeto Data Band no relatório. Em seguida, vá até a propriedade Data View e selecione a opção contatos para ligar a banda de dados ao objeto Data View que criamos anteriormente:


Ligando a Databand ao DataView contatos

Em seguida insira 5 objetos Data Text, coloque-os organizados na direção dos títulos de coluna que acabamos de criar. Selecione o primeiro Data Text e altere sua propriedade Data View para contatos e depois escolha o campo “código” na propriedade Data Field.


Configurando o DataText

Faça o mesmo para os outros DataText’s, obviamente escolhendo o campo correspondente:


Configurando os DataText’s

Depois disso, selecione a banda cabeçalho e altere a propriedade ControllerBand para DataBand1. Isto quer dizer que a banda de dados DataBand1 é “filha” da banda cabeçalho, ou seja, é o que chamamos de relacionamento Master-Detail.


Ligando a Banda cabeçalho à banda Databand1

Você pode pré-visualizar seu relatório pressionando F9 no teclado ou então através da opção File > Execute Report:


Executando o Relatório

Será então exibida uma tela onde é possível escolher o tipo de saída do relatório que pode ser: direto para impressora (Printer), visualização na tela (Preview) ou então para um arquivo (File).


Dispositivo de saída do relatório

Preview do relatório

Agora precisamos salvar nosso projeto do relatório. Feche a visualização (Preview) do relatório (caso esteja aberta). E vá até o menu File > Save e salve o relatório na mesma pasta do projeto Agenda com o nome “rel_contatos” e feche o Rave Report.


Salvando o projeto do relatório

De volta ao Delphi, selecione o objeto RvProject rel_contatos e clique no botão “...” da propriedade ProjectFile, então selecione o arquivo “rel_contatos.rav” que acabamos de salvar.


Selecionando o projeto salvo

Só falta agora inserir um botão para chamar este relatório, portanto insira um objeto button ao form_contatos:


Botão para executar o relatório

Para executar o relatório ao clicar no botão digite o seguinte código em seu evento OnClick:
rel_contatos.ExecuteReport('rel_contatos');

Agora execute o programa e veja o relatório funcionando!


Agenda em Execução

Para que este nosso programa Agenda que acabamos de construir funcione em outras máquinas, basta copiar o executável agenda.exe, o banco de dados Access agenda.mdb e o arquivo do relatório rel_contatos.rav para uma pasta qualquer. Entretanto existe um detalhe importante: em nosso projeto o caminho para o arquivo do banco de dados agenda.mdb está fixo na propriedade ConnectionString do objeto ADOCon.

Por exemplo, vamos supor que em seu computador o banco está em C:\Projetos\Agenda\agenda.mdb e é este o caminho que está configurado dentro do executável agenda.exe. Quando você for executar este programa em outra máquina que o banco não esteja neste mesmo diretório irá ocorrer um erro, pois o programa não achará o banco no local que ficou pré-determinado no código. Isto também ocorrerá para o arquivo do projeto do relatório se o arquivo rel_contatos.rav não estiver no mesmo diretório que foi definido no código do programa através da propriedade ProjectFile do objeto RvProject (rel_contatos).

Para resolver este problema, vamos alterar nosso programa de forma que o executável procure os arquivos no mesmo diretório em que ele está, assim podemos colocar os arquivos em qualquer pasta desde que os arquivos agenda.mdb e rel_contatos.rav fiquem no mesmo diretório que o arquivo agenda.exe.

Vamos primeiro alterar o código do vento OnShow do formulário form_contatos. Neste evento é que estamos estabelecendo a conexão com o banco. Vamos configurar a propriedade ConnectionString do AdoCon dinamicamente antes de estabelecer a conexão. Para isso, altere o código conforme abaixo:


Alterando o evento OnShow do form_contatos

Entendendo a alteração.

AdoCon.Provider := 'Microsoft.Jet.OLEDB.4.0';

Esta linha está configurando o provider que será utilizado para a conexão ao banco, como explicado anteriormente, utilizamos o Microsoft Jet 4 para conectar ao Microsoft Access.

AdoCon.ConnectionString := GetCurrentDir + '\agenda.mdb';

Aqui estamos definindo a propriedade ConnectionString dinamicamente atribuindo o resultado da função GetCurrentDir concatenado com o texto “\agenda.mdb”. A função GetCurrentDir retorna o diretório em que o programa está sendo executado. Por exemplo, se estivermos executando o arquivo C:\Projetos\Agenda\agenda.exe a função GetCurrentDir irá retornar: C:\Projetos\Agenda. Neste exemplo, a instrução “GetCurrentDir + '\agenda.mdb';” irá resultar em: C:\Projetos\Agenda\agenda.mdb.

Para o caso do relatório, altere o código do evento OnClick do botão que executa o relatório conforme abaixo:


Alterando o evento OnClick do botão que excuta o relatório

A alteração realizada é simplesmente configurar a propriedade ProjectFile do objeto RvProject rel_contatos dinamicamente antes de executar o projeto. A explicação é a mesma apresentada para o caso da propriedade ConnectionString do ADOCon.

Pronto, basta colocar os arquivos na mesma pasta (seja ela qual for) que a Agenda irá funcionar perfeitamente!

Obs: Não é necessário ter o Microsoft Access instalado na máquina para o programa conseguir utilizar o banco agenda.mdb.

« Anterior Δ Página principal ¤ Índice Próxima »

* Você pode baixar (fazer download) do conteúdo completo deste curso, em formato PDF, com 179 páginas, comprando o seguinte e-book:

DELPHI BÁSICO

LIVROS INDICADOS DE DELPHI:

Gostou deste artigo?

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI