如何通过PXSelect查询数据库并获取符合分段键格式的值
获取符合分段键格式的查询返回值
在Acumatica中,直接从DAC对象读取分段键字段(如InventoryCD)得到的是无分隔符的原始存储值,要获取带分段键分隔符的格式化值,可通过以下两种框架原生方法实现:
方法一:使用PXSegmentedKeyAttribute.Format
var item = InventoryItem.PK.Find(graph, someInventoryID); string inventoryCDRespectingSegmentedKey = PXSegmentedKeyAttribute.Format( graph.Caches[typeof(InventoryItem)], typeof(InventoryItem.inventoryCD), item.InventoryCD);
方法二:利用缓存的GetValueExt方法
GetValueExt会返回字段的格式化显示值,自动适配分段键配置:
var item = InventoryItem.PK.Find(graph, someInventoryID); string inventoryCDRespectingSegmentedKey = graph.Caches[typeof(InventoryItem)] .GetValueExt(item, typeof(InventoryItem.inventoryCD))?.ToString();
扩展:PXSelect查询后的处理
如果是通过PXSelect批量查询数据,同样适用上述方法:
var inventoryItems = PXSelect<InventoryItem, Where<InventoryItem.inventoryID, In<Required<InventoryItem.inventoryID>>>> .Select(graph, new[] { inventoryID1, inventoryID2 }); foreach (var item in inventoryItems) { string formattedCD = PXSegmentedKeyAttribute.Format( graph.Caches[typeof(InventoryItem)], typeof(InventoryItem.inventoryCD), item.InventoryCD); // 处理格式化后的字段值 }
内容的提问来源于stack exchange,提问作者Kyle Vanderstoep
相关产品推荐
相关产品推荐

