LOV - recuperar o primeiro valor

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

Olá pessoas!!!

Seguinte, tenho um forms com varias lovs em vários campos... Preciso que ao entrar no forms, esses campos venham preenchidos com o primeiro item da lov...

Tem como fazer isso sem uma "engenharia alternativa", como um set qualquer coisa ou algo do tipo? Não posso deixar com valores fixos!

Thanks!! :D
[]'s
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Acredito que não seja possível fazer esse tipo de ação... tendo em vista que os valores da lov vem do banco e esses só são populados na lov quando você dispara a lov (do_key ou f9).

O que você pode fazer é, criar o record_group (create_group) de forma dinamica, ou seja, via linha de código e então aproveitar o código sql para fazer sua consulta inicial.

ex:

Selecionar tudo

/*

** Built-in: CREATE_GROUP 
** Example: Criando record group e populando ele com valores 
** da query
*/ 
DECLARE 
rg_name VARCHAR2(40) := 'Salary_Range'; 
rg_id RecordGroup; 
gc_id GroupColumn; 
errcode NUMBER; 
BEGIN 
/* 
** tenha certeza que o grupo já não existe.
*/ 
rg_id := Find_Group(rg_name); 
/* 
** se ele não existir, você cria e adiciona colunas
** no exemplo só coloco 2 colunas
*/ 
IF Id_Null(rg_id) THEN 
rg_id := Create_Group(rg_name);
/* adicionando 2 colunas */ 
gc_id := Add_Group_Column(rg_id, 'Base_Sal_Range', 
NUMBER_COLUMN); 
gc_id := Add_Group_Column(rg_id, 'Emps_In_Range', 
NUMBER_COLUMN); 
END IF; 
/* 
** populando grupo usado pela lov me baseando em query
*/ 
errcode := Populate_Group_With_Query( rg_id, 
'SELECT SAL-MOD(SAL,1000),COUNT(EMPNO) ' 
||'FROM EMP ' 
||'GROUP BY SAL-MOD(SAL,1000) ' 
||'ORDER BY 1'); 
END; 
Ok. Essa é a rotina padrão... o que você pode fazer é aproveitar a query dessa rotina e criar um select para você popular seus campos com os valores da query (que é igual a da lov).

Outro exemplo mais "fácil" é você no post_query fazer vários cursores com o mesmo sql da lov e popular todos os campos...

Se é isso que você chama de Engenharia alternativa, então... já foi! :-o
Responder
  • Informação
  • Quem está online

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