Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

Cadastro-de-clientes-Pascal-Lazarus

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

Cadastro de clientes

um projeto simples de cadastro de clientes.

*** Funcionalinalidades***

  • cadastro de clientes: Campos como: nome, email, telefone, cpf/CNPJ, endereço, rua, bairro, numero. Trata o erro de não permitir campos vazios.
  • TDBGrid que mostra todos os dados de cada cliente
  • Input de pesquisa, que procura pelo cliente pelo nome.

inicialmente, criei um PageControl, dentro dele eu adicionei o TDBGrid, e logo em seguida adicionei o CSVDataset e o DataSource.

adicionei o CSVDataset no FomrCreate, e dentro de criei e conectei o dataSource pelas propriedades ao CSVDataset1. DEntro de CSVDataset eu criei as colunas que estarão sendo usados no cadastro.

Conectei o TDBGrid ao DataSource, que ele visualmente irá mostra todas as colunas do CSVDataset vindos pelo DataSource.

Criei botões:

Cadastro: Ele Abre a segunda TabSheet2.

pascal
procedure TForm1.cadastrar(Sender: TObject);
    begin
        CSVDataset1.append;
        PageControl1.ActivePage := TabSheet2
    end;

Ná TabSheet2, ao abrir, existe os campos de cadastro.

Nome, email,telefone, cpf/cnpj, e endereço, rua, bairro e cep.

sendo os 4 primeiros obrigatorios. nas proriedades de cada coluna no CSVDataSet1, eu coloquei como required.

e fiz uma Rapida verificação se pelo menos esses campos não estão vazios.

pascal
procedure TForm1.CSVDataset1BeforePost(DataSet: TDataSet);
begin
        if (Trim(DataSet.Fields[0].AsString) = '') and
         (Trim(DataSet.Fields[1].AsString) = '') and
         (Trim(DataSet.Fields[2].AsString) = '') and
         (Trim(DataSet.Fields[3].AsString) = '') and
         (Trim(DataSet.Fields[4].AsString) = '') then
         begin
            ShowMessage('Operação cancelada: O campo obrigatório está vazio.');
            DataSet.Cancel;
                Abort;
        end;
end;
pascal
Que ao detectar que existe campos vazios, envia a tela um Show Menssage, informando que h?? campos vazios, ele invoca o metodo DataSet.cancel, e abortar o procedimento. voltando ao estado original da tela TabSheet2.

Assim que os campos estiverem todos corretos, apertando botao de salvar ele invoca a procedure Salvar.

pascal
procedure TForm1.salvar(Sender: TObject);
begin
        CSVDataset1.post;
        PageControl1.ActivePage := TabSheet1;
end;

E assim volta para a TabSheet1, para realizar um novo cadastro.

ja no segundo botão cancelar.

pascal
procedure TForm1.cancelar(Sender: TObject);
begin
    DataSource1.DataSet.Cancel;
    PageControl1.ActivePage := TabSheet1
end;

Excluir: O evento chama a procedure excluir para a Linha selecionada em TDBGrid procedure TForm1.excluir(Sender: TObject); begin CSVDataset1.Delete; end;

Editar: Aqui ao chamar a procedure editar, ele abre a tabSheet2 e dá a opção de editar a linha selecionada em TDBGRid procedure TForm1.editar(Sender: TObject); begin CSVDataset1.Edit; DBEdit1.Field.Clear; PageControl1.ActivePage := TabSheet2 end;

Ná TabSheet 1, no input de filtrar, no no Object Inpector, no evento onChange, criei uma função chamada filtrar que sempre que detecta uma alterção ela chama a procedure.

pascal
procedure TForm1.filtro(Sender: TObject);
begin
        CSVDataset1.Filtered := False;
        CSVDataset1.Filtered := (Edit1.Text <> '');
end;

que logo em seguida, no CSVDataSEt, ao detectar uma chamada para filtro, nos eventos dele, existe uma função chamada CSVDataset1FilterRecord, que ao perceber uma chamada de filtro faz uma pesquisa dentro do CSVDataSet, procurando pelo campo nome que.

pascal
procedure TForm1.CSVDataset1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
accept := pos(edit1.text, DataSet['nome']) > 0;
end;

que recebe dois parametros