Problemas com Maskaras
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:
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?
É 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
Curtidas 0