| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
Enviada: Qui Mai 04, 2017 10:42 pm Assunto: como usar dbcombobox na selecao de CPF CNPJ |
|
|
bom é o seguinte tem uma janela de cadastro de cliente aonde eu vou selecionar o tipo de cliente, se ele é pessoa física ou se a pessoa jurídica. dependendo da minha escolha o dbedit3 será configurado para máscara de CNPJ ou para máscara de CPF.
como que eu faço para usar dbcombobox1 para fazer essa seleção. quando selecionado no dbcombobox1 "pessoa física" ele automaticamente mudar a máscara do Edit3 para CPF e quando selecionar no campo dbcombobox1 o campo "pessoa jurídica" ele mudar a máscara do Edit3 para CNPJ.
segue abaixo o código que eu uso para fazer a mudança de máscara e a mudança do título dos Edit
| Código: | si for pessoa Fisica
label2.Caption:= 'Nome';
label3.Caption:= 'CPF';
dbEdit3.Field.EditMask:= '999.999.999-99';
|
| Código: | si for pessoa Juridica
label2.Caption:= 'Razão Social';
label3.Caption:= 'CNPJ';
dbEdit3.Field.EditMask:= '99.999.999/9999-99';
|
que apenas fazer a selecao de tipo de pessoa atravez desse compononete |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Sex Mai 05, 2017 8:49 am Assunto: |
|
|
No DBComboBox você vai os itens Física e Jurídica (ItemIndex 0 e 1 respectivamente)
seu código ficará no OnChange do componente, codigo:
| Código: | if DBComboBox1.ItemIndex = 0 then
begin
label2.Caption:= 'Nome';
label3.Caption:= 'CPF';
dbEdit3.Field.EditMask:= '999.999.999-99';
end
else
begin
label2.Caption:= 'Razão Social';
label3.Caption:= 'CNPJ';
dbEdit3.Field.EditMask:= '99.999.999/9999-99';
end |
Eu geralmente utilizo RadioButtons para a seleção entre pessoas Físicas e Jurídicas, pois são apenas 2 itens e são fixos, eu costumo utilizar combobox quando as opções não tem uma quantidade fixa ou quando tem quantidade fixa mas são muitos itens |
|
| Voltar ao Topo |
|
 |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
Enviada: Sáb Mai 06, 2017 11:36 am Assunto: |
|
|
| Citação: | | amigo"leo_cj"me desculpe pelo outro topico. |
antes eu usava um radiogroup para poder fazer esse tipo de seleção.
eu achei o código em uma apostila, porém não funcionava direito daí que eu tentei fazer nesse dbcombobox. porem achei uma outra apostila com o codigo por completo.ate ai bls funciona perfeitamente com o dbradiogroup. segue abaixo o codigo .
no evento onclick do dbradio
| Código: | begin
if DBRadioGroup1.ItemIndex = 0 then // pessoa física
begin
label2.Caption:= 'Nome';
label3.Caption:= 'CPF';
dbEdit3.Field.EditMask:= '999.999.999-99';
end
else // pessoa jurídica
begin
label2.Caption:= 'Razão Social';
label3.Caption:= 'CNPJ';
dbEdit3.Field.EditMask:= '99.999.999/9999-99';
end;
end;
|
e no evendo AfterScroll
| Código: | if TableClientesTipo.AsString = 'F' then // pessoa física
begin
LabelRazaoSocial.Caption := 'Nome';
LabelFantasia.Caption := 'Apelido';
TableClientesCGC_CPF.EditMask := '999\.999\.999\-99;0;_';
end
else // pessoa jurídica
begin
LabelRazaoSocial.Caption := 'Razão Social';
LabelFantasia.Caption := 'Fantasia';
TableClientesCGC_CPF.EditMask := '99\.999\.999\/9999\-99;0;_';
end; |
eu nao achei a nessecidade de usar esse codigo acima no evendo AfterScroll.
porem na minha tela de cadastro tem um dbGrid, logo abaixo ele informa os dados que já estão cadastrado. só que, se na hora de inserir um novo cadastro eu mudar de CPF para CNPJ ele muda todos os itens da tabela que já estão cadastrados. não só o iten que eu vou cadastrar mas ele muda o editmask de toda a tabela, consequentemente tiver algum cadastro na tabela que tiver CPF e eu marcar a opção CNPJ na hora do cadastro, depois na visualização do cliente, o campo vai ser denominado o CNPJ porem vai estar com o dados de CPF . como posso resolver isso |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Mai 08, 2017 10:51 am Assunto: |
|
|
Pelo que vi, o problema ocorre pois você está alterando a mascara do campo, acredito que você vai precisar fazer isso registro a registro.
Você pode fazer isso utilizando os eventos OnGetText e OnSetText do campo, no OnGetText você verifica se é CPF ou CNPJ e aplica a devida máscara e no OnSetText você remove a máscara para que no banco de dados fique apenas o CPF/CNPJ sem formatação. |
|
| Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Ter Mai 09, 2017 10:42 pm Assunto: |
|
|
Pode ser utilizado um case também, assim você pode fazer outras verificações.
| Código: | case combobox.itemindex of
-1: begin
// código/outros
end;
0: begin
// código/outros
end;
1: begin
// código/outros
end;
end; |
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
| Voltar ao Topo |
|
 |
|