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

如何在Acumatica中通过代码为Grid设置上一行字段的默认值?

嘿,刚好我之前做过类似的需求,给你分享两种实现Acumatica Grid默认值继承上一行的方案,一种是无需编码的配置方式,另一种是自定义代码实现,你可以根据场景灵活选择:

方案一:通过Acumatica界面配置实现(零代码)

如果你的需求只是简单的字段默认值继承,直接通过DAC字段属性配置就能搞定:

  • 打开对应DAC的字段属性设置(在Customization Project Editor里找到目标DAC)
  • 找到需要继承上一行值的字段,在它的DefaultValue属性中填入LastValue关键字
  • 保存并发布自定义项目后,新增Grid行时该字段就会自动取上一行的对应值

注意:这种方式只适用于基础的继承场景,要是有复杂的业务判断逻辑,还是得用代码实现

方案二:自定义代码实现(适配复杂场景)

如果需要更灵活的控制(比如只在特定条件下继承、同时处理多个字段的复杂赋值),可以在Graph中通过事件处理来实现:

方式1:在RowInserting事件中批量赋值

这种方式会在用户插入新行时触发,一次性给多个字段赋值:

protected virtual void SalesOrderDetail_RowInserting(PXCache cache, PXRowInsertingEventArgs e)
{
    // 获取Grid对应的DataView数据
    var detailRows = Base.Transactions.Select();
    if (detailRows.Count > 0)
    {
        // 获取Grid中的最后一行(也就是上一行)数据
        var lastDetailRow = detailRows[detailRows.Count - 1] as SalesOrderDetail;
        if (lastDetailRow != null)
        {
            var newDetailRow = e.Row as SalesOrderDetail;
            // 将上一行的指定字段值赋值给新行
            newDetailRow.InventoryID = lastDetailRow.InventoryID;
            newDetailRow.UOM = lastDetailRow.UOM;
            newDetailRow.Qty = lastDetailRow.Qty;
            // 可以根据业务需求添加更多字段赋值
        }
    }
}

替换提示:把SalesOrderDetail换成你实际的DAC类名,Transactions换成Graph中对应Grid的DataView名称,InventoryID、UOM等换成你需要继承的字段名

方式2:在FieldDefaulting事件中单独处理字段

如果只需要给单个字段设置默认值,用FieldDefaulting事件更精准:

protected virtual void SalesOrderDetail_InventoryID_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
{
    var detailRows = Base.Transactions.Select();
    if (detailRows.Count > 0)
    {
        var lastDetailRow = detailRows[detailRows.Count - 1] as SalesOrderDetail;
        if (lastDetailRow != null)
        {
            // 给当前字段设置上一行的值
            e.NewValue = lastDetailRow.InventoryID;
        }
    }
}

同样要替换对应的DAC类名、DataView名称和字段名

额外注意事项

  • 如果Grid有筛选条件,Select()方法会返回筛选后的行;要是需要获取所有未筛选的行,可能需要直接访问缓存数据(比如cache.Cached)
  • 可以在代码中添加业务判断逻辑,比如只有当上一行满足某个条件时才赋值
  • 测试时要注意Grid的批量插入场景,确保逻辑正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:59:14