Desabilitar text_item depois de selecionar um radio_button

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
ROBSON ROCHA
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qua, 10 Mar 2010 10:20 am
Localização: IGREJINHA

Olá para todos!
È o seguinte. Tenho dois radio_buttons (CNPJ e CPF) e quatro text_itens (CNPJ,IE,CPF,RG). Gostaria de q ao selecionar o radio CNPJ me fosse habilitado os text_item CNPJ e IE e fossem desabilitados os text_itens CPF e RG. E o inverso tb, caso eu selecione o radio CPF q fosse desabilitado os texts CNPJ e IE e habilitados os texts CPF e RG.
Tentei utiizar o set_item_property no When-radio-changed mas acabei fazendo só besteira. Andei pesquisando outros fóruns aqui referente à set_item_property mas acabei não encontrando nada então agradeceria se alguém me ajudasse.
Desde já obrigado!

Robson L. Rocha
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

é no WHEN-RADIO-CHANGED mesmo,

Selecionar tudo

--Comeca ativando tudo ou poem nos IFS
SET_ITEM_PROPERTY('BLOCO.RG',ENABLED, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.cpf',ENABLED, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.ie',ENABLED, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.cnpj',ENABLED, PROPERTY_TRUE)

SET_ITEM_PROPERTY('BLOCO.RG',NAVIGABLE, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.cpf',NAVIGABLE, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.ie',NAVIGABLE, PROPERTY_TRUE)
SET_ITEM_PROPERTY('BLOCO.cnpj',NAVIGABLE, PROPERTY_TRUE)

IF (:BLOCO.RADIO = 1) THEN --CNPJ
  SET_ITEM_PROPERTY('BLOCO.RG',ENABLED, PROPERTY_FALSE);
  SET_ITEM_PROPERTY('BLOCO.CPF',ENABLED, PROPERTY_FALSE);
ELSE
  SET_ITEM_PROPERTY('BLOCO.RG',ENABLED, PROPERTY_FALSE);
 SET_ITEM_PROPERTY('BLOCO.RG',ENABLED, PROPERTY_FALSE);
END IF;
vindalencio
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 140
Registrado em: Qui, 16 Fev 2006 9:42 am
Localização: Curitiba
Vanderlei Indalencio

Em vez de habilitar ou desabilitar...
Porque você não usa o VISIBLE, na estética fica melhor, pois quando você checa o CPF, mostra somente o campo CPF, que por sua vez, está sobre o campo CNPJ...
Então quando seleciona CPF ou CNPJ, nem parece que o campo mudou, os campos não do mesmo tamnho e no mesmo lugar...

Só não esqueça de quando for VISIBLE TRUE, tem que SER ENABLE TRUE, tbém..
qualquer coisa posta ai..

Vanderlei
ROBSON ROCHA
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qua, 10 Mar 2010 10:20 am
Localização: IGREJINHA

Bah! Deu certo!!
Agradeço pela sua fundamental ajuda diegolenhardt!!
E quanto a sua sugestão vindalencio gostei muito, realmente é algo q não tinha me passado pela cabeça.
Vlw!

Robson L. Rocha
ROBSON ROCHA
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qua, 10 Mar 2010 10:20 am
Localização: IGREJINHA

Galera, depois de um tempo parece q a coisa voltou a emperrar.
Por motivos maiores tive q refazer esta tela de funcionários em q precisava colocar se ele era físico ou jurídico, e bla, bla, bla.. vocês já sabem.
Fiz novamente os passos ajudados aqui no tópico, só q agora o problema é assim:
quando eu seleciono o radio cnpj tanto os campos text de cnpj, ie, cpf, rg ficam habilitados. E quando seleciono o radio cpf ocorre tudo como planejado, os texts cnpj e ie ficam desabilitados e o cpf e rg habilitados.
Resolví então fazer de uma outra maneira, mais loooonga, mas o erro segue o mesmo. Se alguém puder me ajudar agradeço muito!

Selecionar tudo

 BEGIN
IF (:FRT_FORNECEDORES.TIPO_PESSOA = 'J') THEN   -- CNPJ --

SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', ENABLED, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', NAVIGABLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', VISIBLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', ENABLED, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', NAVIGABLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', VISIBLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', ENABLED, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', NAVIGABLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', VISIBLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', ENABLED, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', NAVIGABLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', VISIBLE, PROPERTY_FALSE);

ELSE

SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', ENABLED, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', NAVIGABLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CNPJ', VISIBLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', ENABLED, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', NAVIGABLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.IE', VISIBLE, PROPERTY_FALSE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', ENABLED, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', NAVIGABLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.CPF', VISIBLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', ENABLED, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', NAVIGABLE, PROPERTY_TRUE);
SET_ITEM_PROPERTY ('FRT_FORNECEDORES.RG', VISIBLE, PROPERTY_TRUE);

END IF;
END; 
Sei q podia fzer algo simples e certo, mas já tentei várias formas e nada. Se alguém puder me ajudar agradeço.
vlw!
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Olá ROBSON ROCHA,
Aparentemente seu código esta correto eu tentaria reescrever desta forma:

Selecionar tudo

Begin
  --
  set_item_property('FRT_FORNECEDORES.CNPJ', visible, property_false);
  set_item_property('FRT_FORNECEDORES.IE', visible, property_false);
  set_item_property('FRT_FORNECEDORES.CPF', visible, property_false);
  set_item_property('FRT_FORNECEDORES.RG', visible, property_false);
  --
  -- CNPJ --
  If (:frt_fornecedores.tipo_pessoa = 'J') Then
    --
    set_item_property('FRT_FORNECEDORES.CNPJ', visible, property_true);
    set_item_property('FRT_FORNECEDORES.CNPJ', enabled, property_true);
    set_item_property('FRT_FORNECEDORES.CNPJ', navigable, property_true);
    set_item_property('FRT_FORNECEDORES.IE', visible, property_true);
    set_item_property('FRT_FORNECEDORES.IE', enabled, property_true);
    set_item_property('FRT_FORNECEDORES.IE', navigable, property_true);
    --
  Else
    --
    set_item_property('FRT_FORNECEDORES.CPF', visible, property_true);
    set_item_property('FRT_FORNECEDORES.CPF', enabled, property_true);
    set_item_property('FRT_FORNECEDORES.CPF', navigable, property_true);
    set_item_property('FRT_FORNECEDORES.RG', visible, property_true);
    set_item_property('FRT_FORNECEDORES.RG', enabled, property_true);
    set_item_property('FRT_FORNECEDORES.RG', navigable, property_true);
    --
  End If;
End;
Desabilitaria tudo e conforme a opção selecionada habilitaria apenas os que fossem nescessários.
SergioLBJr
Rank: Oracle Guru
Rank: Oracle Guru
Mensagens: 448
Registrado em: Ter, 16 Jun 2009 3:07 pm
Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

Cara aparentemente o código está ok.

Da um find ai no teu form e vê se tu não ta setando estes campos em outros locais.
ROBSON ROCHA
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qua, 10 Mar 2010 10:20 am
Localização: IGREJINHA

Galera! Agradeço a ajuda de vocês! Pois parece q o negócio está fluíndo. Agora está acontecendo como previsto, porém ficou apenas uma coisinha, olhem só.
O item q eu tenho antes deste radio_group é o "nome_fantasia". O q acontece é q ao sair do nome_fantasia e ir para o radio cnpj os text_itens cpf e rg não ficam desabilitados, e então eu preciso selecionar o radio cpf e daí voltar para o radio cnpj, daí sim desabilitam os texts cpf e rg.
Qnt ao selecionar o radio cpf os texts_item cnpj e ie desabilitam tranquilo.
É só esse pequeno probleminha q tenho agora, mas o pior já foi resolvido.
Agradeço aos amigos gfkauer e SergioLBJr, grande ajuda.
Vlw!
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

ROBSON ROCHA,

O radio em questão tem um valor default?
Se tiver um valor tu pode iniciar a aplicação e já desabilitar os campos respectivos neste momento(trigger When-New-Form-Instance). Desta forma a aplicação já inicia conforme estiver o radio.[/i]
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Estive pensando mais um item que pode vir a lhe dar problemas.

Verifica se quando você efetua uma consulta com diversos registros, pessoas físicas e jurídicas, navega entre os registros de tipos diferentes, ele habilita os campos corretos a cada tipo de pessoa posicionada?
SergioLBJr
Rank: Oracle Guru
Rank: Oracle Guru
Mensagens: 448
Registrado em: Ter, 16 Jun 2009 3:07 pm
Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

Cara pelo q tu flo q ta acontecendo parece que tu dexa os campos habilitados por padrão e a tua condição que desabilita e habilita os campos em questão.

Vai nas propriedades dos fields e dexa eles desabilitados por padrão e só habilita quando realmente quiser. Dae vai fica tudo trancado até o cara ir la e marcar os radios.

Se tu tiver um valor padrão pro teu radio dexa só o campo referente aquele valor habilitado por padrão e o outro tu dexa desabilitado.

Qualquer problemas posta aí.
ROBSON ROCHA
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qua, 10 Mar 2010 10:20 am
Localização: IGREJINHA

Galera! Agora fluiu o troço!
Seguí a dica do amigo SergioLBJr e como o meu radio padrão era o radio_cnpj eu deixei os texts de cnpj e ie habilitados e os texts cpf e rg desabilitados. Rodou legal.
Qnt à colocação do amigo gfkauer eu tb estava com receio qnt ao detalhe de vários registros, mas tudo ocorreu bem, e a distinção dentre cpf e cnpj ocorre perfeita para cada pessoa.
Agradeço a ajuda.
Vlw galera!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 22 visitantes