Problemas com Maskaras

Delphi

27/01/2009

Boa tarde Galera, estou com um problema com maskaras!

É o seguinte, estou utilizando o Delphi2006 com Firebird2.0 e os componentes da DBExpress.

Tenho um cadastro de Clientes onde tenho um campo chamado CNPJ que eu uso para gravar CPFs e CNPJs.
Tenho um TDBLookupComboBox onde o usuário escolhe se é pessoa física ou jurídica para que eu possa fazer a configuração da maskara do campo CNPJ.

No evento OnChange do Tfield CLI_PESSOA eu coloco o seguinte código:

procedure TdmClientes.cdsClientesCLI_PESSOAChange(Sender: TField);
begin
if cdsClientes.FieldByName(´CLI_PESSOA´).Value = 1 then
  begin
    frmClientes.label15.Caption := ´CPF´;
    frmClientes.label16.Caption := ´RG´;
    frmClientes.label4.Caption := ´Nome Completo´;
    frmClientes.label5.Caption := ´Apelido´;  
    cdsClientes.FieldByName(´CLI_CNPJ´).EditMask := ´999.999.999-99;0;_´;
    cdsClientes.FieldByName(´CLI_CGF´).EditMask := ´´;
  end
  else
     begin
        frmClientes.label15.Caption := ´CNPJ´;
        frmClientes.label16.Caption := ´IE´;
        frmClientes.label4.Caption := ´Razão Social´;
        frmClientes.label5.Caption := ´Nome Fantasia´;
        cdsClientes.FieldByName(´CLI_CNPJ´).EditMask := ´99.999.999/9999-99;0;_´;
        cdsClientes.FieldByName(´CLI_CGF´).EditMask := ´999.999.999.999;0;_´;

     end;
end;


Se o campo CLI_PESSOA for igual a 1 ele é pessoa física e conseqüentemente sua maskara ficará ´999.999.999-99;0;_´ , caso contrario sua maskara ficará ´99.999.999/9999-99;0;_´;

Só que quando eu cadastro um cliente pessoa física e gravo o campo CNPJ fica gravando assim 222.222.222-22, até aqui tudo ok, mas se eu cadastrar um cliente pessoa jurídica logo em seguida ele altera a maskara tanto do registro atual como do anterior, ou seja, aquele cliente que eu cadastrei como pessoa física a maskara ele muda para 22.222.222/2222-22, o que é errado! Era para mudar somente do registro atual.

Como corrigir esse bug?


Setmaster2009

Setmaster2009

Curtidas 0
POSTAR