Oracle APEX 动态操作以根据许多项目设置值

Oracle APEX Dynamic Action to Set Value based on many Items

我需要有关 Oracle APEX 4.2 表单页面上的动态操作的帮助。我有许多项目设置,当在下拉列表中更改时,会触发 return 或 'Complete' 或 'In Porgess' 的动态操作。当页面加载或更改项目时,我一直为空。我也检查了调试,它已经验证我只是得到了 null。这是我的 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;

唯一可以'Complete'或'NA'的项目是3A。

我在更改项目中确实有所有这些项目,用逗号分隔,我正在 return 将 l_status 转换为 dbst_3_1 作为仅显示项目。

关于为什么我总是得到 null 而不是 Complete 或 In Progress 有什么想法吗?此外,当用户更改项目时,我还需要它在页面上一遍又一遍地动态地继续 运行。 'Dynamic Scope' 是从哪里来的?

谢谢,

你的 PL/SQL 在结束前遗漏了这个:

return l_status;

但是我认为这个 Javascript 表达式可以用来代替 PL/SQL,这样会更有效:

(
$v('P2_DBST_1_1') == 'Complete' && 
$v('P2_DBST_1_2') == 'Complete' &&
$v('P2_DBST_1_3') == 'Complete' && 
$v('P2_DBST_2_1') == 'Complete' &&
$v('P2_DBST_2_2') == 'Complete' &&
$v('P2_DBST_2_3') == 'Complete' &&
($v('P2_DBST_2_3A') == 'Complete' || 
$v('P2_DBST_2_3A') == 'NA') &&
$v('P2_DBST_2_4') == 'Complete' &&
$v('P2_DBST_3_1') == 'Complete'
)
? 'Complete'
: 'In Progress'

确保您不要忘记提交和 return 页面项目。您会在 PL/SQL 代码框下找到列出它们的位置,分别命名为 Page items to SubmitPage items to Return

您应该添加一行以在 dbmst_3_1 上保存 l_status。然后将其添加到 return.

的页面项目
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;

  :dbst_3_1 := l_status;
end;

您的要提交的页面项目 应包含以下项目: P2_DBST_1_1,P2_DBST_1_2,P2_DBST_1_3,P2_DBST_2_1,P2_DBST_2_2,P2_DBST_2_3,P2_DBST_2_3A,P2_DBST_2_3A, P2_DBST_2_4,P2_DBST_3_1

Return 的页面项目应包含这些项目:

DBST_3_1

希望对您有所帮助。