Oracle:使用LOV选择值执行查询

时间:2014-02-07 12:02:25

标签: oracle oracleforms lov

我需要使用从LOV中选择的值运行查询。

我有下一个设置:

  • 名为“MENIU”的块
  • 一个名为“MENIU”的表,其中包含“ID_MENIU”列。
  • 一个名为“LOV_MENIURI”的LOV
  • 名为P_IDMENIU
  • 的参数
  • 名为“Alegeti Meniul”的表格上的按钮

为了使用从LOV中选择的值运行查询,我试过这个:

  • LOV返回项目“ID_MENIU”设置为PARAMETER.P_IDMENIU
  • 在块MENIU的预查询中
  • 我已将PARAMETER.P_IDMENIU值分配给MENIU.ID_MENIU
  • 按钮“Alegeti Meniul”有下一个“按下按钮”触发器代码:

    declare 
        success boolean;
    begin
    Enter_Query;
    success := show_lov('LOV_MENIURI');
    Execute_Query;
    end;
    

我的问题是,当第一次按下按钮没有任何反应时,如果我再次按下按钮,则会出现LOV窗口,并且查询会执行两次。

结果的GIF:

1 个答案:

答案 0 :(得分:1)

您不需要进行enter_query调用。

begin 
  if show_lov('LOV_MENIURI') then
    execute_query;
  end if; 
end;

当调用内置的execute_query时,你将触发预查询触发器,使用LOV返回的值设置where子句。