Ajuda em Tela de Cadastro de Clientes

Delphi

26/11/2007

Estou precisando de uma ajuda em um Form Cadastro de Clientes
Gostaria de fazer + ou - assim ao digitar o CPF ou CNPJ ao pressionar ENTER ele procure se já foi cadastrado ou não evitando perca de tempo pois só saberia ao preencher todos os campos pois ele informaria ´Violation of PRIMARY or UNIQUE KEY´ .

procedure TForm1.NovoRegistroClick(Sender: TObject);
Begin 
    if CPF for OK then
      Begin
         // não sei como preceder a procura para a verificação
         MessageDlg(´Este cliente já foi cadastrado.´)
       end
     Else
       Begin
         MessageDlg(´Deseja cadastrar o cliente.´) yes ou no
         HabilitaBotoes
         DataSource1.Append;
         HabilitaBotoes       
       end;
end;



E tambem gostaria de fazer ao gravar o CPF com uma formatação tipo assim ao digitar o CPF [b:69dc4109d6]11111111111[/b:69dc4109d6] seria gravado [b:69dc4109d6]00011111111111[/b:69dc4109d6] ou então [b:69dc4109d6] 11111[/b:69dc4109d6] seria gravado [b:69dc4109d6]00000000001111[/b:69dc4109d6] preenchendo automaticamente os 14 digitos mesmo se digitado apenas 4 digitos

Estou usando no CAMPO CPF_CNPJ é uma chave Primaria TIPO Char 14

Uso
DBEXPRESS e Firebird
Delphi 7


Alves_sp

Alves_sp

Curtidas 0

Respostas

Gilson.pontes

Gilson.pontes

26/11/2007

vc pode colocar uma Query auxiliar e fazer assim:

No evendo OnExit do EditCPF......

with QueryAuxiliar do
begin
SQL.Clear;
SQL.Add(´select CPF from CLIENTE´);
if Locate(´CPF´, EditCPF.Text, []) then
ShowMessage(´Cliente já cadastrado!´)
end;


GOSTEI 0
Gilson.pontes

Gilson.pontes

26/11/2007

corrigindo..............

with QueryAuxiliar do
begin
SQL.Clear;
SQL.Add(´select CPF from CLIENTE´);
Open; // eu havia me esquecido de abrir....
if Locate(´CPF´, EditCPF.Text, []) then
ShowMessage(´Cliente já cadastrado!´)
Close; // .... e fechar
end;


GOSTEI 0
Fabiano Góes

Fabiano Góes

26/11/2007

crio um trio de componentes: SQLDataSet<-DataSetProvider<-ClientDataSet com a propriedade poAllowCommandText do DataSetProvider = True, uso esse trio de componentes para fazer todas as pesquisas auxuliares.

no evento OnKeyPress do DBEdit CPF/CNPJ:
procedure TForm1.edtCPF_CNPJKeyPress(Sender: TObject; var Key: Char);
var
   iCPF_CNPJ: Int64;
begin
   if Key = #13 then
   begin
      iCPF_CNPJ := StrToInt64(edtCPF_CNPJ.Text);

      cdsPesquisas.Close;
      cdsPesquisas.CommandText :=
         ´SELECT CPF_CNPJ FROM CLIENTES WHERE CPF_CNPJ = ´ + QuotedStr(FormatFloat(´00000000000000´, iCPF_CNPJ));
      cdsPesquisas.Open;

      if cdsPesquisas.RecordCount > 0 then
         MessageDlg(´Cliente já cadastrado.´, mtWarning, [mbOK], 0)
      else
         edtCPF_CNPJ.Text := FormatFloat(´00000000000000´, iCPF_CNPJ);
   end;
end;


essa é a minha idéia, espero que possa te ajudar.
abraço!!!


GOSTEI 0
Alves_sp

Alves_sp

26/11/2007

Obrigado pela ajuda.


GOSTEI 0
POSTAR