首页 > 解决方案 > Oracle apex apex_application.g_f0x 不获取表项

问题描述

我有一份关于 apex_item(s) 的报告。报告很复杂,所以我只显示与简化相关的内容。该报告是通过以下方式创建的:

select ID || apex_item.hidden(11,ID) as "ID", 
       apex_item.text(p_idx => 12, p_value => VOLUME) as "Volume" 
from TEMP;

这给出了:

在此处输入图像描述

在提交页面上,我有一个计算报告行的过程(稍后我循环这些行以执行一些操作):

apex_debug.warn('count f11: ' || apex_application.g_f11.count);

结果如预期的那样为2 。

问题 - 当我尝试从报告中保存更改而不提交页面时:

我有一个按钮“更新服务器”,它在点击 PL/SQL 操作时具有动态操作:

在此处输入图像描述

PL/SQL 包含与上述循环完全相同的代码,但结果现在为0。

我的目标是根据行进行操作。不提交页面,但我不明白如何在不提交的情况下循环这些行。谢谢

标签: oracleoracle-apexoracle-apex-19.2

解决方案


当您运行执行 PL/SQL 代码(现在称为“执行服务器端代码”)类型的动态操作时,您可以指定要提交的页面项目,该操作将在 PL/之前设置为会话状态SQL 块运行,但我认为您不能指定那些fxx称为项目类型的项目。我认为你有两个选择:

  1. 创建一个隐藏项并使用在您的 PL/SQL 操作之前运行的 Javascript 操作填充该项,然后将该隐藏项与您的 PL/SQL 操作一起提交。

  2. 将您的 PL/SQL 代码更改为 Ajax 回调过程,然后apex.server.process在 Javascript DA 中调用它。您可以指定fxx要使用该调用提交的类型项目。


推荐阅读