如何通过Apex表单批量更新Interactive Grid中关联的多行数据
实现APEX表单批量更新同联合主键组的IG记录
核心逻辑
绕开表单默认的单条更新机制,通过表单页面的联合主键项(P7_Asset、P7_LastBatchDate)作为筛选条件,自定义批量更新PL/SQL逻辑,仅修改指定的两个字段,同时保持表单其余字段只读。
具体实现步骤
1. 设置表单字段只读属性
打开表单页面编辑界面,将除目标更新列外的所有字段只读属性设为Yes,避免用户误修改非目标字段。
2. 替换表单保存按钮的默认动作
- 删除表单自带“保存”按钮的
Submit Page默认动作,改为执行PL/SQL代码。 - 编写批量更新的PL/SQL逻辑(替换占位符为实际表名和列名):
UPDATE 你的业务表名 SET 目标列1 = :P7_目标列1, 目标列2 = :P7_目标列2 WHERE Asset = :P7_Asset AND LastBatchDate = :P7_LastBatchDate; COMMIT;
3. 同步刷新Interactive Grid
在保存按钮的PL/SQL代码执行完成后,添加动态动作:
- 触发时机:按钮点击执行成功后
- 动作类型:
Refresh - 目标选择:对应的Interactive Grid区域,确保更新后IG能实时展示最新数据。
4. 功能验证
测试时,在IG中选中任意一条同Asset+LastBatchDate组的记录,表单加载后修改两个可编辑列,点击保存后检查该组所有记录的目标列是否均被更新,其余字段保持原有值。
内容的提问来源于stack exchange,提问作者Bob Veitch
相关产品推荐
相关产品推荐

