Mensagem LOV - valor não encontrado

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

Bom dia pessoas!

Gente... essas lov's acabam comigo...rsss :lol:

Preciso colocar uma mensagem quando não encontrar o valor na LOV... ou seja, tenho um campo onde tem uma lov q validate list está "Yes"... se o usuario digitar algum valor que na lov não existe, preciso emitir uma mensagem....

Alguém poderia me ajudar :?:


Valews pessoas!
:D
Avatar do usuário
alef
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 119
Registrado em: Ter, 06 Nov 2007 2:45 pm
Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo

Juliana, a unica forma que sei é fazer um filtro atraves de uma consulta antes da lov aparecer.

Agora usando o POG(Programação Orientada a Gambiarra),
você pode criar um novo bloco para efetuar a consulta. e depois desse bloco o sistema pega o valor que a pessoa selecionou. com isso você so vai gastar uma consulta. diferente de filtrar antes do lov.
jucruzjc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 11 Jan 2007 10:26 am
Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle

Oi pessoas!!

Oi Alef...

Fiz da seguinte maneira...

Criei uma trigger no campo (o mesmo que a lov está associada) "ON-ERROR", e nela coloquei o seguinte código:

Selecionar tudo

declare
bAux boolean;

begin
   bAux := SHOW_LOV('MINHA_LOV');
   
   if not bAux then
      p_alerta('Valor não econtrado.');
      raise form_trigger_failure;
   end if;
end;
E Funcionou!!! :wink:

OBrigada Gente....

(Rique... valeu pela ajuda.... :D )
NaPraia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 22 Fev 2008 8:24 am
Localização: Floripa - SC

só para complementar, eu faria diferente
ao invés de abrir diretamente a lov quando se clica no botão da lov.
no when-buton-pressed eu fazer a consulta que está na lov, se retornar vazio dá um exit e manda uma mensagem, se tiver dados, chama a lov.
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

para tratar este tipo de problema coloco no key-listval do item que possui a lov eu pego a mesma query da lov e faço com um count

se retornar > 0 dai dou um show_lov... senao trato minha mensagem


abrçs
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

rodfbar escreveu:faço com um count

se retornar > 0 dai dou um show_lov... senao trato minha mensagem
Olá Rodfbar

Só pra complementar: é melhor fazer um OPEN CURSOR, FETCH que verifique se veio alguma linha OU um simples SELECT ... WHERE ROWNUM=1.

Pois no seu caso, você quer apenas saber se o SELECT vai retornar alguma linha ou não. Não precia fazer um COUNT e varrer talvez milhares de linhas do banco. Achando a PRIMEIRA já é o suficiente :-D
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

opa...

dica anotada... muito obrigado


abrçs
davidmeloboy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.

Neste caso crie uma trigger when-validate-item no campo onde vai receber a lov
neste campo você faz um cursor com um select que traz os mesmos dados da lov, se o usuario digitar um valor que não retorna na query aparece a mensagem para o usuario que o valor não existe e tranca o usuario no campo!
Responder
  • Informação
  • Quem está online

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