满足多个条件时的Oracle APEX show按钮

问题描述 投票:0回答:2

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

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

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

要么

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

做这个的最好方式是什么?

我最初在更改时向P1_DD1和P1_DD2添加了动态操作,对于P1_DD1,将客户端条件添加到项目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但没有任何反应。试图找出原因。或者,也许有更好的方法来做到这一点?

oracle oracle-apex oracle-apex-5.1
2个回答
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 - 真实动作>>显示按钮>>页面加载时启用执行

4 - 错误操作>>隐藏按钮>>在页面加载时启用执行


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
         )
       );
© www.soinside.com 2019 - 2024. All rights reserved.