Ajuda em Tela de Cadastro de Clientes
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´ .
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
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
Curtidas 0
Respostas
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;
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
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;
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
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:
essa é a minha idéia, espero que possa te ajudar.
abraço!!!
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
26/11/2007
Obrigado pela ajuda.
GOSTEI 0