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

时间:2019-03-26 18:17:18

标签: 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 Expression:{{1 }}

效果很好。问题出在P1_DD2。我尝试使用类似的逻辑-添加P1_DD2不为null的客户端条件,然后添加服务器端条件PL / SQL表达式:P1_HIDDEN='NO',但是什么也没有发生。试图找出原因。或者,也许有更好的方法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

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