【问题标题】:How to run a process after page submit and before refresh如何在页面提交后和刷新前运行进程
【发布时间】:2018-03-23 10:32:36
【问题描述】:

我在 Oracle Apex (v5.1) 中遇到问题。

我有一个对话框页面,点击图标会从父页面打开。在关闭对话框页面时,我的父页面在“对话框关闭”事件上提交 以及在处理父页面提交时运行的进程,该进程似乎无法正常工作。 在那个过程中,我有某些 APEX_ITEMS 的值是在提交父页面时设置的。有什么方法可以让进程运行吗?

额外说明:我有一个交互式报告,它是从一个表中提取的,例如“临时”,该报告在某些列中有链接。 当用户单击链接时,他将被重定向到模式页面(同时将应用程序变量“APP_VAR”设置为零)并且用户可以在那里修改一些数据。 在用户单击“提交”按钮时的模式页面中,进程运行并更新临时表并将“APP_VAR”的值设置为“1” 然后页面被刷新。在同一个模式页面上,在“页面加载”上写入了一个动态操作,服务器端条件为“APP_VAR”=“1”, 此动态操作使用“关闭对话框”操作关闭模式页面。

现在,当模式页面在父页面上关闭时,会在“对话框关闭”事件上写入一个动态操作,以提交父页面。 在 'APP_VAR' ='1' 的条件下还有一个进程 'Update Parent',它使用父页面中的所有值更新 'temp' 表(作为用户 可以更改报告中的某些值。)并将 APP_VAR 设置为 0。

所有这些都是为了让临时表使用两个页面中的值进行更新。 但是,当模态页面关闭时,父页面会在“更新父”过程完成之前刷新,从而导致在父页面中所做的任何更改都丢失。

如何在页面重新加载之前运行“更新父级”?请记住,在“更新父级”运行之前,需要提交报告数据 到会话状态以获取更新的数据。

【问题讨论】:

    标签: oracle oracle-apex oracle-apex-5.1


    【解决方案1】:

    案例一

    为什么不将“更新父级”过程与提交页面的动态操作放在一起?在这个动态动作中,您需要两个真正的动作。

    • 第一个将执行其 PL/SQL“更新父级”。
    • 第二个会提交页面

    案例 2

    或者如果你想在一个进程中保留“更新父级”,只需在页面提交中调用它(如果需要将它绑定到一个按钮),将它放在正确的执行顺序中(通过设置序列号)。在提交页面的动态操作中,为此提交定义一个按钮名称(如果需要)。

    示例案例 2:

    关闭页面后,我需要执行 3 个进程。所以,我把这3个进程链接到一个按钮上,如果有必要我把服务器的条件。

    提交后:

    10 - Process 1 (when I click the x button)
    20 - Process 2 (when I click the x button)
    30 - Process 3 (when I click the x button)
    

    所以我需要在提交页面的动态操作中定义与此提交关联的按钮的名称(填写“请求/按钮名称”字段)。

    *隐藏此按钮。

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 2020-06-27
      • 2018-10-06
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      相关资源
      最近更新 更多