移除Acumatica的Location属性后,应使用何种属性替代LocationID?
替代LocationID的属性方案
如果你不需要关联inventoryID、subItemID、siteID这类库存相关参数,同时要保留位置选择器的基础功能,可以参考以下两种方案:
方案1:简化版[Location]属性
直接保留[Location]属性,仅配置你需要的DisplayName和Visibility参数即可。Acumatica的Location属性支持仅传入必要参数,不会强制关联库存字段:
[Location(DisplayName = "Location", Visibility = PXUIVisibility.SelectorVisible)] public virtual int? LocationID { get; set; }
这个版本仅提供基础的位置选择器功能,完全满足你无需传入库存相关参数的需求。
方案2:自定义[PXSelector]属性
如果需要更灵活的控制选择器行为,可以直接使用[PXSelector]属性指向Location数据表,手动配置选择器的显示字段与逻辑:
[PXSelector(typeof(Location.locationID), typeof(Location.locationCD), typeof(Location.descr), SubstituteKey = typeof(Location.locationCD), DisplayName = "Location")] [PXUIVisibility(Visibility = PXUIVisibility.SelectorVisible)] public virtual int? LocationID { get; set; }
这种方式完全脱离库存字段的关联,直接从Location表拉取数据,适合完全不需要库存上下文的场景。
若你使用的Acumatica版本较新,优先选择方案1即可,Location属性内部已做优化,仅指定必要参数不会强制依赖库存字段。
内容的提问来源于stack exchange,提问作者Hemendra Yadav
相关产品推荐
相关产品推荐

