【问题标题】:Oracle apex apex_application.g_f0x don't get table itemsOracle apex apex_application.g_f0x 不获取表项
【发布时间】:2021-10-14 06:13:23
【问题描述】:

我有一份关于 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。

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

【问题讨论】:

    标签: oracle oracle-apex oracle-apex-19.2


    【解决方案1】:

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

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

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

    【讨论】:

    • 我担心这会是解决方案
    • #1 做起来很简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 2021-09-17
    相关资源
    最近更新 更多