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.