如何在 APEX 4.1 中为单项表单创建更新流程

Posted

技术标签:

【中文标题】如何在 APEX 4.1 中为单项表单创建更新流程【英文标题】:How to create update process for single entry form in APEX 4.1 【发布时间】:2012-08-29 17:47:16 【问题描述】:

我是 APEX 的新手。我确信此解决方案可能可用,但无法在任何地方找到正确的答案。

以下是案例场景:(为用户提供更新特定报告行的能力)。

第 1 页有报告 A,其中有一个特定列,例如 B 列,它具有指向其所有行的链接,通过单击一个特定行,用户导航到新页面 (Page2)。

第 2 页在区域 1 中具有单个条目形式,其中包含项目列表(大约 10 个),而在同一页面的区域 2(第 2 页)中,它具有表格形式。

第 2 页区域 1 中的某些项目是根据第 1 页报告详细信息中的信息填充的。有些物品有LOV,有些物品用户可以添加信息。

第 2 页区域 2 中的表格形式是根据用户可以编辑的订单项 id 生成的。表格形式仅与一个表格相关联。

页面上有两个按钮,取消按钮返回报表页面,而保存按钮将数据保存到数据库表中。单个表单项将更新 2 个表格,而表格形式将更新一个表格。

需要如何建立通过 apex 更新基础表的流程。

现在表格形式具有内置的 MRU 更新流程(但我不确定我是否可以将此流程与单一条目表格配合使用,或者最好创建一个单独的流程来处理这两个更新)

任何人都可以告诉我如何实现这一点,或者解释这个过程的链接吗?

【问题讨论】:

【参考方案1】:

您将需要手动创建 plsql 进程来处理提交的值并将它们应用到您的表中。您不能使用内置的行处理来执行此操作:您不能定义每页 2 个。 (这是有道理的,因为您无法指示哪个列映射到哪个表。您只能将“数据库列”定义为项目的源。这意味着即使您有 2 个进程,也会尝试处理这些列这两个过程都会导致错误。)

查看这篇文章,了解有关如何设置流程的一些想法:https://***.com/a/7877933/814048

【讨论】:

谢谢,我正在关注您提供的链接。有什么方法可以检查项目的值是否已更新,并且仅在更新基础表/列时才更新。我的意思是 APEX 是否有一些我们可以用来检查的功能。表格形式怎么样,是否有检查行元素是否已更新,如果已更新,则仅更新那几列..而不是全部。如果没有更新字段,则不处理更新... 是的。这是链接帖子的“乐观锁定”部分。这是行级。如果您需要更细化,可以尝试使用 apex_item.md5_checksum docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/… ,尽管这会很有创意:)【参考方案2】:
if :P42_ORDER_STATUS in ('IP','OW') then
begin
    FOR I in 1..APEX_APPLICATION.G_F01.COUNT LOOP
        
        update sales_mst set ORDER_STATUS = 'DR'
        where id = to_number(apex_application.g_f01(i));
    end loop;
end;
end if;

【讨论】:

请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。

以上是关于如何在 APEX 4.1 中为单项表单创建更新流程的主要内容,如果未能解决你的问题,请参考以下文章

如何在Oracle Apex交互式报表的行中添加更新按钮?

使用 PLSQL 更新 Apex 表格形式

Oracle Apex:如何将表单中的数字字段限制为仅允许数字?

Oracle Apex 4.1 复选框更新穿梭

如何在Yii2中为相关模型创建插入和更新操作的表单?

APEX 4.1 - 基于右面板填充数据库