【问题标题】:Oracle APEX show button when multiple conditions are met满足多个条件时的 Oracle APEX 显示按钮
【发布时间】:2019-08-17 05:32:11
【问题描述】:

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

每当用户更改 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 但没有任何反应。试图弄清楚为什么会这样。或者,也许有更好的方法来做到这一点?

【问题讨论】:

    标签: oracle oracle-apex oracle-apex-5.1


    【解决方案1】:

    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】:

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

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

    【讨论】:

    • 那是一个PL/SQL表达式?
    • 这是一个返回布尔值的函数体。 Apex 会自动添加 BEGIN 和 END,因此您不必这样做。如果你这样做(并检查调试),你会看到嵌套的 BEGIN-END 块,所以这不会是一个错误,但这不是必需的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多