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

Cod*_*ess 5 oracle oracle-apex oracle-apex-5.1

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

每当用户更改 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 表达式,:P1_HIDDEN='YES' AND P1_DD1 IS NOT NULL但没有任何反应。试图弄清楚为什么会这样。或者,也许有更好的方法来做到这一点?

rom*_*aga 10

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'))
Run Code Online (Sandbox Code Playgroud)

3 - True Action >> 显示您的按钮 >> 在页面加载时启用执行

4 - False Action >> Hide your button >> 在页面加载时启用执行


Lit*_*oot 5

从字面上复制您所写的内容,按钮的条件(返回布尔值的函数)将如下所示:

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
         )
       );
Run Code Online (Sandbox Code Playgroud)