满足多个条件时 Oracle APEX 显示按钮

Oracle APEX show button when multiple conditions are met

我的页面上有几个下拉菜单、一个隐藏项和一个按钮。

每当用户更改 P1_DD1 或 P1_DD2 的值时,如果满足以下条件之一,我需要显示该按钮:

1) 如果 P1_HIDDEN='YES' 并且 P1_DD1 和 P1_DD2 都不为 null

2) 如果 P1_HIDDEN='NO' 且 P1_DD1 不为空

最好的方法是什么?

我最初在 P1_DD1 和 P1_DD2 中添加动态操作以更改 P1_DD1 添加 set Client-side condition to Item IS NOT NULL 并将项目设置为 P1_DD1 和服务器端条件 PL/SQL Ex[pression: :P1_HIDDEN='NO'

效果很好。问题出在 P1_DD2。我尝试使用类似的逻辑 - 添加 P1_DD2 不为空的客户端条件,然后添加服务器端条件 PL/SQL 表达式 :P1_HIDDEN='YES' AND P1_DD1 IS NOT NULL 但没有任何反应。试图弄清楚为什么会这样。或者,也许有更好的方法来做到这一点?

从字面上复制你写的内容,按钮的条件(一个 returns 布尔函数)看起来像这样:

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
         )
       );

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 - 错误操作 >> 隐藏您的按钮 >> 在页面加载时启用执行