You need to enable JavaScript to run this app. 如何在Acumatica网格中添加列展示其他页面的字段值
优惠活动
大模型
产品
解决方案
定价
更多

如何在Acumatica网格中添加列展示其他页面的字段值

解答

不需要使用PXDefault特性实现该需求,PXDefault的作用是为字段提供默认初始值,并不负责跨表关联拉取已存在的关联数据。

你可以按照以下两种场景选择对应实现方案:

  • 如果你需要销售订单上展示的字段实时同步库存商品的最新值,不需要在订单层面留存历史值:
    给销售订单明细DAC(SOLine)添加未绑定类型的自定义字段,通过PXDBScalar特性关联库存商品表(InventoryItem)拉取对应自定义字段的值,参考代码示例:

    public class SOLineExt : PXCacheExtension<PX.Objects.SO.SOLine>
    {
        #region UsrInventoryCustomField
        // 字段类型要和InventoryItem上的自定义字段类型保持一致,这里以字符串为例
        [PXString]
        [PXUIField(DisplayName = "你自定义字段的显示名称")]
        [PXDBScalar(typeof(Search<InventoryItemExt.usrCustomField, 
            Where<InventoryItem.inventoryID, Equal<SOLine.inventoryID>>>))]
        public virtual string UsrInventoryCustomField { get; set; }
        public abstract class usrInventoryCustomField : PX.Data.BQL.BqlString.Field<usrInventoryCustomField> { }
        #endregion
    }
    

    配置完成后在SO301000页面的自定义编辑器中,给销售订单明细网格添加对应自定义字段列,发布自定义即可正常展示。

  • 如果你需要在销售订单保存时留存选择商品时该字段的快照值,后续库存商品字段修改不影响已创建的订单:
    将SOLine上的自定义字段改为绑定类型,在InventoryID字段的FieldUpdated事件中编写逻辑,根据选中的库存ID查询对应自定义字段的值赋值给SOLine上的字段即可,同样不需要用到PXDefault。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:12:00