暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

APEX开发实践(十三):嵌套动态操作(Dynamic Action)的实现

732

APEX目前的动态操作(下简称DA)只能提供简单的一层判断操作。

即:if 条件为真 

            then 执行DA1 

            else 执行DA2


但很多时候我们需要比较复杂的条件判断。例如:

 if 条件1为真

    then 执行DA1

    else if 条件2为真

                then 执行DA2

                else 执行DA3


下面就通过一个例子,用一种简单的方式,实现上述这种if...then...else if...then...else的嵌套DA操作。这种方式利用隐藏项(Hidden item)传递用于判断真假的值。通过这种方式,可以实现多层嵌套。


本文的具体应用是:

如果status项为“Closed”,则再判断service type项。 

如果service type项为“OCI”,则显示按钮“Close OCI”,否则显示按钮“Close”

如果status项为非“Closed”,则显示按钮“Save”。



第一步:创建一个隐含项P4_OCI_CHECK。这里要注意的是:必须要在项属性里把“值受保护”这个开关关掉,否则点击按钮提交事务的时候会报错。



第二步:针对status项创建一个DA。


判断条件为:如果status=“Closed”为真,则把service_type的值赋给P4_OCI_CHECK。并把SAVE按钮隐藏起来。




如果status=“Closed”为假,则显示按钮“SAVE”,同时要把按钮“Close”和“Close OCI”隐藏起来。



第三步:回到P4_OCI_CHECK。针对这个隐藏项做一个DA。如果P4_OCI_CHECK=“OCI”为真,则显示“Close OCI”。否则,显示“Close”。



以此类推,可以不断地实现DA的多层嵌套。


=====   End   =====


更多Oracle APEX的知识和技巧,请猛戳下面二维码持续关注微信公众号“APEX中文社区”和“徐大爷的学习笔记”。


APEX中文社区


徐大爷的学习笔记



文章转载自徐大爷的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论