Erro na trigger WHEN-VALIDADE-ITEM o utilizar GO-ITEM!

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP

Erro na trigger WHEN-VALIDADE-ITEM o utilizar GO-ITEM!

pessoal, seguinte, em um TextItem eu digito um código pra procura do registro
referente, criei uma funçãozinha VERIF_CHAVE_ESTRANGEIRA que faz a busca e retorna
a descrição caso encontre o registro com aquela chave, se a função retornar TRUE, ou

seja, achar o registro, eu já movo o cursor do mouse para um determinado item na tela,

que não necessariamente precisa ser o próximo (que o Forms já faz automático).

ex:

Selecionar tudo

WHEN-VALIDADE-ITEM:
IF VERIF_CHAVE_ESTRANGEIRA THEN --Achou o registro
  GO_ITEM('bloco.itemX');
END IF;
porém, o Forms gera um erro e não muda o foco de acordo com o GO_ITEM!, isso é normal,

ele não aceitar essa intrução na trigger WHEN-VALIDADE-ITEM?

Selecionar tudo

40737 - Illegal restricted procedure GO_ITEM in WHEN-VALIDADE-ITEM trigger.

não existe outra alternativa a não ser implementar a mudança de foco em outra trigger

mesmo?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Não vai conseguir fazer GO_ITEM, pois GO_ITEM é RESTRITA.
(procure no help do forms por Restricted built-ins).
A When-validate-item não suporta comandos que fazem a mudança de foco, de item, etc.

Terá que usar outra trigger pra isso, por exemplo, uma POST_CHANGE, ou outra.
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP

é, não teve jeito mesmo, teve que ser implementado na KEY-NEXT-ITEM, aí funcionou, mas a verif_geentidade_fk agora é chamada duas vezes, na WHEN-VALIDATE-ITEM e na KEY-NEXT-ITEM também.

mas beleza, só queria saber se não era vacilo meu

valeu

Selecionar tudo

--GO_ITEM Não funciona na WHEN-VALIDADE-ITEM
:b01.enti_cd := LPAD(:b01.enti_cd, 2, '0');

IF verif_geentidade_fk THEN
  GO_ITEM('b01.gela_cd'); 
ELSE
  :b01.enti_ds := NULL;
  GO_ITEM('b01.enti_cd'); --Se não encontrar, limpa e volta o cursor para o mesmo campo
END IF;
Responder
  • Informação
  • Quem está online

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