OFICINA MECÂNICA IV
Atenção:  Por motivos particulares, esse tutorial só irá até a aula IX, não tem finalização..  
 
Dando sequencia, ao nosso programa vamos desenvolver a tela de Cadastro de Clientes e de Veiculos.

Mostrarei primeiro o nosso layout final para que vocês possam ter uma base de estética.

Crie um novo Form e configure:

Properties

 

 

Name

CadClientes

 

Position

PoScreenCenter

 

Caption

Cadastro de Clientes

 

Salve com o nome UcadClientes

Clique  em File/UseUnit/ e selecione o  DataModule(DM), para criarmos o vinculo com o Banco de dados.

Crie o Menu com base  do form Principal (Tutorial I,II).

 Acrescente ao Form Um TGroupBox e de a ele o nome de  Grbdados.

Coloque outro TgroupBox dentro do Grbdados e de o nome de GrbPesquisa .

Abra o DataModule(DM) e na tabela Clientes, de um clique duplo para abrir o fieldeditor , selecione todos os itens e arraste para o form CadClientes.

 

Configure o Layout a seu gosto.

Acrescente no GrbPesquisa, um  TEdit e um TLabel dando o nome a eles de (ednome, lblpesquisa), acrescente na sequencia um TDbGrid  (DbgPesquisa) e configure conforme:

Propriedades

 

Name

DbgPesquisa

Datasource

DsCadClientes

 

 

De um duplo clique no dbgrid para abrir o editor de Colunas, clicando em add All Fields.

 e delete Todos os itens, deixando apenas o item nome. Configure a seu gosto o tamanho o formato alterando os dados no item title,font,style,color.

O Vinculo Clientes e Veículos

Vamos nesse momento , fazer o vinculo do Cliente com seu veiculo.

Abra outra vez o Data module (DM) e selecione a tabela Veiculos e altere os seguintes itens 

Propriedades

 

 

Mastersource

DsCadClientes

De onde os dados virão (tabela Mestre) 

Masterfield

Abrirá o Field link, selecione o Código do cliente dos dois lados e clique em add (veja imagem)

 

Isso fará que todo o Cliente seja relacionado a um ou mais veículos. Salve e retorne ao form CadClientes.

No formCadClientes inclua um TDbGrid(Palheta  DataControls) e vincule-o ao DsCadClientes na opção DataSet.  

Configure o DbGrid , utilizando a mesma forma do DbgPesquisa.  Note que não utilizei o CodCliente, mas isso deixo como opção sua.

Acrescente no form um Dbnavigator (DataControls) e na opção Options altere as seguinte propriedades para false,  

Esse DbNavigator é necessário, pois é possível que  um cliente tenha  mais que um veiculo.

                Conecte o DbNavigator  na opção DataSet, ao DSCadVeiculos e salve o Form.

O  evento dos botões

         Se tudo foi montado corretamente o seu ActionList, deverá estar da seguinte forma

De um duplo clique no botão  ActNovo,e no evento que se abre digite:

procedure TFormCadClientes.ActNovoExecute(Sender: TObject);

begin

Dm.TbClientes.Append;

Dm.TbVeiculos.Append;

end;

Para os demais botões digite conforme lista abaixo:

procedure TFormCadClientes.ActCancelarExecute(Sender: TObject);

begin

   Dm.TbClientes.Post;

   end;

procedure TFormCadClientes.ActGravarExecute(Sender: TObject);

begin

   dm.TbClientes.Post;    

end;

procedure TFormCadClientes.actExcluirExecute(Sender: TObject);

begin

  if application.MessageBox('Deseja excluir este Cliente?','Confirme',

  MB_YesNO + MB_IconQuestion + Mb_DefButton2)= IDNO then

  dm.TbClientes.Delete; 

end;

procedure TFormCadClientes.ActSairExecute(Sender: TObject);

begin

 close;

end;

Retorne ao Formulario  e no evento OnClose , digite:

procedure TFormCadClientes.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=cafree;

  FormCadClientes:=Nil;

end;

Para o evento do localizar Clientes , de um clique duplo no TEdit(ednome) e digite:

procedure TFormCadClientes.edNomeChange(Sender: TObject);

begin

dm.TbClientes.Locate('Nome',ednome.text,[loPartialKey,LoCaseInsensitive]);

end;

Pronto está feito o form de Cadastro de Clientes, não aprimorei os comando de botões, pois acho que  há muitas informações para isso.  Se ajudar basta acrescentar na sequencia de cada botão.

   ex.(“dm.tbclientes......;

         actNovo.enabled:=true ou false;

         act Gravar.enabled:=true ou false;

Executando o Formulário

            Vamos executar  o formulário criado, vá no FormPrincipal e no action List no Botão ActClientes (duploClique), digite:

procedure TFormPrincipal.ActClientesExecute(Sender: TObject);

begin

formCadClientes.showModal;

end;

Salve e teste o programa.

O formulário em  execução,  

No próximo tutorial, iremos criar o formulário de manutenção

 até lá

 

Claúdio