ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

como usar dbcombobox na selecao de CPF CNPJ

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Qui Mai 04, 2017 10:42 pm    Assunto: como usar dbcombobox na selecao de CPF CNPJ Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Sex Mai 05, 2017 8:49 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Sáb Mai 06, 2017 11:36 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Mai 08, 2017 10:51 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Ter Mai 09, 2017 10:42 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB