Prezados,
Estou com problemas com um list_item no estilo Pop_list.
Tenho um critério de classificação em outro campo, a qual toda vezes que faço uma alteração nele, um GO_ITEM me direciona para este list_item.
O problema é que tenho fazer com que o usuário ao cair nesse list_item, não saia dele enquanto preenche-lo. Ou seja, ao fazer um update em outro campo, este não poderá ser NULL.
Me aconselharam a fazer uma trigger POST-TEXT_ITEM.....mas para list_item não tenho ela para ser usada.
Alguéms sabe o que devo fazer, ou qual trigger devo usar ??? para tornar esse item_list obrigatório.
OBS.: Já coloquei SIM nas propriedades para tornar-lo obrigatório....porém pede que tenha um valor inicial ??????.....ou seja, talvez não seja esse o caminho.
Dúvida sobre List_item no estilo Pop_list.
-
- 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
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Utilize uma WHEN-VALIDATE-ITEM deve funcionar
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
Faz assim...
Quando tu alterar aquele outro campo, tu obriga a execução da trigger WHEN-VALIDATE-ITEM do teu list_item.
Faz assim:
No WHEN-VALIDATE-ITEM do list_item, tu dá uma mensagem e tranca no campo.
Quando tu alterar aquele outro campo, tu obriga a execução da trigger WHEN-VALIDATE-ITEM do teu list_item.
Faz assim:
set_item_property('teu_list_item', item_is_valid, property_false);
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
Não peça desculpas, meu caro!
Todos fomos novatos um dia. Ou não.
Baseando-se pelo basicão, tu pode fazer algo assim:
Mas assim...
Nem sempre o teu list_item deverá ser informado, não é?
Então eu te sugiro criar um parâmetro (Nodo PARAMETER) e setá-lo em tempo de execução.
Criado o parâmetro, vamos ao código.
Lembra daquele set_item_property ali de baixo?
Adiciona esta linha ao código:
Na WHEN-VALIDATE-ITEM do list_item, faz assim:
Mas isso é só se nem sempre ele será obrigatório.
Testa ai e me diz que deu certo hahaha!
Todos fomos novatos um dia. Ou não.
Baseando-se pelo basicão, tu pode fazer algo assim:
BEGIN
IF :teu_campo IS NULL THEN
message('Campo deve ser informado!');
RAISE form_trigger_failure;
END IF;
END;
Nem sempre o teu list_item deverá ser informado, não é?
Então eu te sugiro criar um parâmetro (Nodo PARAMETER) e setá-lo em tempo de execução.
Criado o parâmetro, vamos ao código.
Lembra daquele set_item_property ali de baixo?
Adiciona esta linha ao código:
:parameter.obriga_list_item := 1;
BEGIN
IF :teu_campo IS NULL AND
:parameter.obriga_list_item = 1
THEN
:parameter.obriga_list_item := 0;
message('Campo deve ser informado!');
RAISE form_trigger_failure;
END IF;
END;
Testa ai e me diz que deu certo hahaha!
-
- Rank: Programador Júnior
- Mensagens: 23
- Registrado em: Seg, 15 Fev 2010 9:58 pm
- Localização: São Paulo - SP
Funcionou Diego !!!
Eu altero o "primeiro" campo, depois caio no "segundo" e só posso sair de lá se não for NULL.
Agora me gerou outro problema....rss, se eu salvar.....fica gravado o item de list no "SEGUNDO" campo....porém eu posso alterar o primeiro campo quando quiser (que tb. é um item de lista)....e o segundo não poderei mais torná-lo NULL
Ou seja, terei que fazer com que o primeiro campo seja alterado somente 1 vez...é possível isso ????
Eu altero o "primeiro" campo, depois caio no "segundo" e só posso sair de lá se não for NULL.
Agora me gerou outro problema....rss, se eu salvar.....fica gravado o item de list no "SEGUNDO" campo....porém eu posso alterar o primeiro campo quando quiser (que tb. é um item de lista)....e o segundo não poderei mais torná-lo NULL
Ou seja, terei que fazer com que o primeiro campo seja alterado somente 1 vez...é possível isso ????
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
No teu primeiro item, seta o teu segundo pra REQUIRED caso se encaixe no teu "critério de classificação".
Assim:
Agora vai
Assim:
IF :primeiro_campo = <criterio> THEN
set_item_property('segundo_campo', item_is_valid, property_false);
set_item_property('segundo_campo', REQUIRED, property_true);
ELSE
set_item_property('segundo_campo', REQUIRED, property_false);
END IF;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes