Кнопка показа Oracle APEX при выполнении нескольких условий - PullRequest
0 голосов
/ 26 марта 2019

У меня на странице есть несколько выпадающих меню, скрытый элемент и кнопка.

Всякий раз, когда пользователь меняет значение P1_DD1 или P1_DD2, мне нужно показать кнопку, если выполнено одно из следующих действий:

1) Если P1_HIDDEN = 'YES' и P1_DD1 и P1_DD2 не равны нулю

или

2) Если P1_HIDDEN = 'NO' и P1_DD1 не равно нулю

каков наилучший способ сделать это?

Первоначально я добавил динамические действия как к P1_DD1, так и к P1_DD2 при изменении, а для P1_DD1 добавил для условия клиента значение Item IS NOT NULL и установил для элемента значение P1_DD1 и условия на стороне сервера PL / SQL Ex [pression: :P1_HIDDEN='NO'

это прекрасно работает. Проблема с P1_DD2. Я попытался использовать аналогичную логику - добавить условие на стороне клиента, где P1_DD2 не равно нулю, а затем добавить условие на стороне сервера PL / SQL Expression :P1_HIDDEN='YES' AND P1_DD1 IS NOT NULL, но ничего не происходит. Попытка выяснить, почему это так. Или, может быть, есть лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 26 марта 2019

1 - Попробуйте создать динамическое действие при изменении этих элементов (P1_HIDDEN, P1_DD1, P1_DD2).

2 - Условие на стороне клиента >> Выражение Javascript

((apex.item('P1_DD1').getValue() != '') &&
(apex.item('P1_DD2').getValue() != '') &&
(apex.item('P1_HIDDEN').getValue() == 'YES'))
||
((apex.item('P1_DD1').getValue() != '') &&
(apex.item('P1_HIDDEN').getValue() == 'NO'))

3 - True Action >> Показать кнопку >> включить выполнение при загрузке страницы

4 - Ложное действие >> Скрыть кнопку >> включить выполнение при загрузке страницы

2 голосов
/ 26 марта 2019

Буквально копируя то, что вы написали, состояние кнопки (функция, возвращающая логическое значение) будет выглядеть так:

return (
         (    :P1_HIDDEN = 'YES' 
          and :P1_DD1 is not null
          and :P1_DD2 is not null
         )
         or
         (    :P1_HIDDEN = 'NO'
          and :P1_DD1 is not null
         )
       );
...