You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apex多Interactive Grid表单问题:位置信息无法同步至IG条目

Apex Interactive Grid 同步主表单字段值解决方案

问题根源

你用单表存储所有数据,主表单的位置信息属于全局公共字段,而Interactive Grid(IG)的每条新增记录都是独立的表行,默认不会自动继承主表单已填写的字段值,导致新增IG行时位置信息为空。

具体解决方法

方法1:利用IG的默认值设置(推荐)

  • 编辑IG的位置信息列,找到默认值属性
  • 选择PL/SQL表达式,输入主表单对应项的会话状态值,比如:V('P1_LOCATION')(替换成你实际的页面项名称)
  • 保存设置后,新增IG行时该列会自动填充主表单已填写的位置值

方法2:通过动态动作(Dynamic Action)实现

  • 创建一个动态动作,触发条件选择Interactive Grid > 行初始化
  • 动作选择设置值,目标选择IG的位置信息列
  • 设置类型选择页面项,值选择主表单的位置信息页面项(比如P1_LOCATION)
  • 确保动态动作作用于目标IG,这样每次新增行都会自动带入值

方法3:修改IG的JavaScript初始化代码

  • 编辑IG的属性,找到JavaScript初始化代码
  • 添加如下代码(替换对应列名和页面项):
function(config) {
    config.initActions = function(actions) {
        var addAction = actions.lookup("selection-add-row");
        if (addAction) {
            addAction.action = function(event) {
                this.base.action(event);
                var grid = this.widget().interactiveGrid("getViews", "grid");
                var model = grid.model;
                var newRecord = model.getRecord(model.last());
                model.setValue(newRecord, "LOCATION_COLUMN", apex.item("P1_LOCATION").getValue());
            };
        }
        return actions;
    };
    return config;
}
  • 其中LOCATION_COLUMN是IG中位置信息列的静态ID,P1_LOCATION是主表单的页面项名称

额外建议

如果后续还要新增更多IG,建议采用主从表结构替代单表:

  • 主表存储位置信息等全局字段,生成唯一主键(比如MAIN_ID)
  • 每个IG对应一个从表,通过MAIN_ID关联主表
  • 这样不仅能避免字段冗余,还能更清晰地管理多模块数据,后续扩展更灵活

内容的提问来源于stack exchange,提问作者Bob Veitch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:35:55