Esse artigo faz parte da revista Clube Delphi edição 106. Clique aqui para ler todos os artigos desta edição


Boa Idéia

tiOPF na Prática

Faça um controle de cheques usando orientação a objetos – Parte II

 

Neste artigo veremos

·         Uma introdução ao framework tiOPF;

·         Como utilizá-lo em um sistema comum;

·         Como gerar relatórios.

Qual a finalidade?

·         Mostrar o uso adequado de ferramentas que auxiliam no desenvolvimento orientado a objetos e como aplicá-las no dia a dia.

Quais situações utilizam esses recursos?

·         No desenvolvimento de sistemas em geral.

 

Resumo do DevMan

         O tiOPF é um dos mais antigos e estáveis frameworks ORM, Object/Relational Mapper, para Delphi. É utilizado por grandes empresas no exterior e, neste artigo vamos continuar sua utilização no desenvolvimento do sistema de controle de cheques. Será visto como gerar relatórios baseando-se nos objetos existentes.

 

No artigo anterior, vimos que o tiOPF é um framework que realiza o mapeamento objeto relacional para nós, assumindo a responsabilidade de persistir objetos de negócio em tabelas de um banco de dados. Quando desenvolvemos um sistema aplicando a orientação a objetos nos deparamos com um problema chamado impedância objeto/relacional. Resumidamente esse problema representa a diferença existente entre esses dois mundos.

Par exemplificar, iniciamos um projeto com o objetivo de controlar cheques usando orientação a objetos. Continuando com o projeto, nos resta manter o registro dos cheques, permitir que uma consulta seja feita e geração de um relatório. Vamos agora criar nossa classe que representa os cheques. Como já citado na primeira parte deste artigo, o tiOPF oferece para nós uma estrutura básica pronta para inserção, exclusão e consulta de objetos que é realizada através de coleções de objetos, representadas por classes do tipo TtiObjectList.

Retornando ao projeto

Caso não tenha tido acesso ao artigo da edição anterior ou mesmo não tenha desenvolvido o exemplo citado na edição, o ideal é que você faça o download do código-fonte no site da DevMedia e continue de onde paramos para que possamos entender de forma mais tranqüila o que veremos nessa edição. O código-fonte pode se obtido no link www.devmedia.com.br/resumo/download.asp?site=3&idrevista=126.

Siga abrindo o arquivo produzido no artigo anterior e logo em seguida a unit BOM.pas. Nós vamos criar uma nova classe chamada TCheques, como ilustra a Listagem 1.

 

Listagem 1. Classe TCheque

01  TCheques = class;

02  TCheque = class;

03

04  TCheques = class(TtiObjectList)

05  private

05 protected

06   function GetItems(i: integer): TCheque; reintroduce;

07   procedure SetItems(i: integer; const Value: TCheque); reintroduce;

08 public

09   property Items[i:integer]: TCheque read GetItems write SetItems;

10   procedure Add(AObject: TCheque); reintroduce;

11   procedure Clear; override;

12   procedure Save; override;

13  end;

 

Nas linhas 1 e 2 declaramos antecipadamente as duas classes que usaremos. Veja na linha 4 que criamos a classe TCheques herdando de TtiObjectList, que é base para lista de objetos oferecendo métodos para salvar e carregar as informações. Sua implementação também é bem simples, como mostra a Listagem 2.

 

Listagem 2. Implementação da classe Tcheques

01 procedure TCheques.Add(AObject: TCheque);

02 begin

03   inherited Add(AObject);

04 end;

05

...

Quer ler esse conteúdo completo? Tenha acesso completo