Oracle: выполнить запрос с выбранным значением LOV

Мне нужно выполнить запрос со значением, выбранным из LOV.

У меня есть следующие настройки:

  • блок под названием "MENIU"
  • таблица с именем "MENIU" со столбцом "ID_MENIU".
  • LOV по имени "LOV_MENIURI"
  • параметр с именем 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 ответ

Решение

Вам не нужен этот вызов enter_query.

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

При вызове встроенного execute_query вы запустите триггер предварительного запроса, установив предложение where, используя значение, возвращаемое LOV.

Другие вопросы по тегам