Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
jessica07 Novato

Registrado: Sexta-Feira, 2 de Janeiro de 2015 Mensagens: 48
|
Enviada: Sáb Jan 03, 2015 4:01 pm Assunto: Problema com DBedit |
|
|
Boa tarde pessoal,
Estou com um problema com um DBedit.
Tenho um cadastro de clientes que contem um RadioGroup com a opcao tipo de pessoa, sendo Fisica e Juridica.
No meu form de cadastro, tenho dois DBedit, sendo um para cpf e outro para cnpj.
Quando clico na opcao Fisica (indice 0 no RadioGroup), o DBedit do Cnpj fica invisivel e vice versa com a opcao Juridica.
Porem quando eu abro o form de cadastro e clico no botao Proximo Registro, as opcoes do meu RadioGroup mudam de acordo como eu cadastrei o meu cliente, mas se tem algum cliente cadastrado com a opcao Juridica, o meu DBedit Cnpj continua invisivel e apenas o DBedit do cpf aparece...
No evento onClick do RadioGroup, estou usando o seguinte codigo:
case RGPessoa.ItemIndex of
0:
begin
lbCpf.Visible:= true;
dbeCpf.Visible:= true;
lbCnpj.Visible:= false;
dbeCnpj.Visible:= false;
end;
1:
begin
lbCpf.Visible:= false;
dbeCpf.Visible:= false;
lbCnpj.Visible:= true;
dbeCnpj.Visible:= true;
Tem alguma maneira de resolver isso?
Pq o correto seria os DBedit ficarem visíveis ou invisíveis de acordo com a pessoa selecionada no meu RadioGroup.
Desde já agradeço.
Abraço. |
|
Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Sáb Jan 03, 2015 4:53 pm Assunto: |
|
|
Eu faria uma procedure para tratar as mascaras e chamaria a mesma sempre que for preciso. Tanto no botao Proximo quanto em qualquer outro momento que precisar.
att.
Anderson. |
|
Voltar ao Topo |
|
 |
jessica07 Novato

Registrado: Sexta-Feira, 2 de Janeiro de 2015 Mensagens: 48
|
Enviada: Sáb Jan 03, 2015 6:41 pm Assunto: |
|
|
Entendi... até pensei em fazer dessa forma, exemplo: se o campo tivesse 11 digitos, a mascara se ajeitaria de uma maneira e se fosse 14 digitos, seria outra mascara.
Teria como fazer dessa maneira? E se tivesse, como seria? |
|
Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Jan 05, 2015 6:25 am Assunto: |
|
|
Eu uso um ComboBox onde informo se é pessoa física ou jurídica, ai faço um IF... tipo assim:
Código: |
If ComboBox1.text = 'F' Then
ibdataset.FieldByName('CPFCGC').EditMask:='999.999.999-99;1;_'
else
ibdataset.FieldByName('CPFCGC').EditMask:='99.999.999/9999-99;1;_';
|
Note que usei diretamente meu DataSet e não o DBEdit e usei tbm o mesmo campo na tabela que é um varchar(18).
Espero que seje de ajuda.
att.
Anderson. |
|
Voltar ao Topo |
|
 |
thomazs Moderador


Registrado: Segunda-Feira, 1 de Março de 2004 Mensagens: 2835
|
Enviada: Seg Jan 05, 2015 5:31 pm Assunto: |
|
|
A "sacada" aí é criar uma procedure e chamá-la dentro do onchange e também no afterscroll do seu dataset. _________________ Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django |
|
Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Ter Jan 06, 2015 6:54 am Assunto: |
|
|
Isso mesmo, Não citei em quais eventos chamar a procedure, mas foi exatamente isso que eu disse. |
|
Voltar ao Topo |
|
 |
|