【发布时间】:2015-11-20 15:34:43
【问题描述】:
我需要有关 Oracle APEX 4.2 中表单页面上的动态操作的帮助。我有许多项目设置,当在下拉列表中更改时会触发动态操作以返回“完成”或“在 Porgess”。当页面加载或更改项目时,我一直为空。我也检查了调试,它已经证实我只是得到空值。这是我的 PL/SQL 函数体。
declare l_status varchar2(255);
begin
if
:p2_dbst_1_1 = 'Complete' AND
:p2_dbst_1_2 = 'Complete' AND
:p2_dbst_1_3 = 'Complete' AND
:p2_dbst_2_1 = 'Complete' AND
:p2_dbst_2_2 = 'Complete' AND
:p2_dbst_2_3 = 'Complete' AND
(:p2_dbst_2_3A = 'Complete' OR
:p2_dbst_2_3A = 'NA') AND
:p2_dbst_2_4 = 'Complete' AND
:p2_dbst_3_1 = 'Complete'
THEN l_status := 'Complete';
ELSE l_status := 'In Progress';
end if;
end;
唯一可以是“完成”或“不适用”的项目是 3A。
我在 Change Item 中确实有所有这些项目,用逗号分隔,我将 l_status 作为仅显示项目返回到 dbst_3_1。
关于为什么我一直为 null 而不是 Complete 或 In Progress 有什么想法吗?我还需要它在用户更改项目时一遍又一遍地在页面上动态运行。 “动态范围”有什么用处吗?
谢谢,
【问题讨论】:
-
我不知道,但为什么这是一个 PL/SQL 动态操作?这将触发到服务器的 AJAX 往返。难道这一切都不能在客户端用 Javascript 完成吗?
-
您的选择列表是如何定义的?您选择的值列表是什么样的? @TonyAndrews 你是对的,虽然我会理解 JavaScript 知识是否可能是 OP 的问题。
-
块不应该以
return l_status;结尾吗? -
嗨,是的,我根本不知道 JS,但我错过了那个返回 ;( Duhh ..当我在项目中更改它时,这个动态动作不会“动态”更新......使用 JS 或 PL/SQL。现在,不管它返回什么“正在进行中”,即使所有内容都是“完成”。我的选择列表是静态下拉列表。STATIC2:进行中;进行中,完成;完成。谢谢寻求帮助和建议。
-
关于我的页面的另一点。我在这个页面上使用了 jquery Accordian ......这不会算作部分页面刷新,对吗?我有这些项目所在的三个区域,我想知道是否需要一个 jquery 选择器,以便我使用动态范围,并且动态操作会在项目的每次更改时触发。
标签: plsql oracle-apex