Carregar LOV dinamicamente.

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal, tenho um form 6i que carrego com parametro dependendo do privilegio do usuário de logon, e para cada privilegio (na verdade são 2) eu preciso carregar uma LOV diferente em um campo.
Tem como eu fazer isso?

P.S.: tentei gerar uma mesma LOV que fizesse uma busca diferente de resultados para cada parametro usando CASE, porém quando um único usuário aqui que tem os dois privilegios juntos o CASE obviamente dá pau.
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

Mas o que você quer fazer quando o usuário tem os 2 parâmetros? Qual das duas LOVs é pra mostrar?
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

boas tarde guri.


manda a select dinamica que a gente da uma olhada...acho que tenho uma ideia mas precisaria da select para não falar besteira...hehehe

falow
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

A minha select estou postando abaixo, somente para esclarecer o que fiz:
Recebo dois parametros (0 ou 1) quando os dois parametros vem 1 (carregados) eu preciso fazer uma LOV que exiba todos os registros (a minha LOV atual limita por tipo de parametro passado).
Se alguém puder ajudar.

Selecionar tudo

select stg_codigo, stg_descricao
       from status_geral
where stg_parecer = case when :PARAMETER.p_user_resp_cc_sugestao = 1 then 'S' else 'N' end
or   stg_parecer_comite = case when :PARAMETER.p_user_comite_sugestao = 1 then 'S' else 'N' end
Avatar do usuário
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 136
Registrado em: Qui, 05 Ago 2004 9:33 am
Localização: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

Bom Dia...não sei se entendi bem o problema mas acho que isso deverá resolver....não sei se é a melhr forma...eu acho provavel que tenha solucao mais simples mas testa isso

Selecionar tudo

SELECT STG_CODIGO, STG_DESCRICAO
  FROM (SELECT STG_CODIGO, STG_DESCRICAO
          FROM STATUS_GERAL
         WHERE STG_PARECER        = REPLACE(REPLACE(TO_CHAR(:PARAMETER.P_USER_RESP_CC_SUGESTAO),'1','S'),'0','N')
         UNION ALL
        SELECT STG_CODIGO, STG_DESCRICAO
          FROM STATUS_GERAL
         WHERE STG_PARECER_COMITE = REPLACE(REPLACE(TO_CHAR(:PARAMETER.P_USER_COMITE_SUGESTAO) ,'1','S'),'0','N') 
       )
 GROUP BY STG_CODIGO, STG_DESCRICAO
 ORDER BY STG_CODIGO, STG_DESCRICAO
eu fiz duas selects com union all ai cada select traz as suas permissões e a select externa unifica so registros duplicados e ordena,
e tambem substitui o case por replace.

veja ai....qualquer coisa é só postar.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Cara estive ocupado em outro projeto, vou testar melhor aqui, mas parece que está funcionando.
Valeu.
Responder
  • Informação
  • Quem está online

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