【问题标题】:Oracle APEX 21 Application Item value that is displayed is old显示的 Oracle APEX 21 应用程序项目值是旧的
【发布时间】:2021-08-31 16:25:24
【问题描述】:

我的应用程序的第 1 页是一个交互式网格,其中显示“创建保留”按钮。可以在第 1 页选择并保存记录。然后,当单击“创建保留”按钮时,将显示第 11 页(模式窗口),提示输入保留参数。 在此模式窗口上单击“创建”按钮时,动态操作会执行 3 个步骤/操作:

  1. 执行服务器端代码以调用 PL/SQL 过程,该过程创建保留并返回包含创建或更新的记录数的 output_msg 参数。该 output_msg 参数被返回到 GLOBAL_MSG——在我的应用程序中创建的应用程序项。

2。显示 &GLOBAL_MSG 的 警报 操作。 3. 关闭对话框动作

当我运行它时,为 GLOBAL_MSG 显示的值是旧的。

例如: 第一次尝试选择 2 条记录,单击“创建保留”并收到错误消息(尽管已创建保留)。

第二次,我选择3条记录,点击“Create Holds”,它会显示之前调用的“2 hold created”(output_msg)。

第三次选择4条记录,点击“Create Holds”,显示“3 hold created”...

我不明白为什么我的动态操作的第 1 步(将要返回的项目设置为 GLOBAL_MSG)没有立即更新该应用程序项目。

谁能告诉我我应该如何这样做?

【问题讨论】:

    标签: global-variables oracle-apex


    【解决方案1】:

    要返回的项目需要是一个页面项目,但这可以是全局页面上的一个项目 (0)。

    这是因为概念是将项目值返回给客户端,而应用程序项目(数据存储)只能在 PL/SQL 本身内设置。您应该会看到会话状态值已更新。

    这样的消息传递通常会触发 P0_GLOBAL_MSG 更改的动态操作,以向用户显示结果。

    本机警报操作在呈现页面时使用来自会话状态的值。例如,Alertify 插件提供了利用客户端值的能力。

    【讨论】:

    • 谢谢斯科特!我试试看。
    猜你喜欢
    • 2022-01-08
    • 2012-07-21
    • 2019-01-20
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多