我正在尝试更新库存项目 (IN202500) 的“服务管理”选项卡上的制造商和制造商型号。
我大约 99% 确定它们必须在图形扩展中,但模式浏览器仅指示它们在 DLL 中,而不是扩展的名称。更一般地说,如果一个字段在扩展中,有没有办法找出哪个字段?还是枚举存在于 Graph Cache 中的扩展?
InventoryItem row = Base.ItemSettings.Current;
// This doesn't work. InventoryItemFSxEquipmentModel isn't the name of the extension and IDK how I figure out what it is.
InventoryItemFSxEquipmentModel rowExt2 = PXCache<InventoryItem>.GetExtension<InventoryItemFSxEquipmentModel>(row);
// This also doesn't work, as it isn't in the base model.
throw new PXException(row.ManufacturerID.ToString());
要找出一个字段在哪个图形扩展中,您可以使用 Acumatica 中的“自定义项目编辑器”:
InventoryItem
”并单击“搜索”。一旦知道图形扩展的名称,就可以使用它来获取当前记录的扩展实例,如下所示:
InventoryItem row = Base.ItemSettings.Current;
InventoryItemExt rowExt = row.GetExtension<InventoryItemExt>();
将“
InventoryItemExt
”替换为包含您感兴趣的字段的实际图形扩展的名称。
然后您可以访问 Manufacturer 和 Manufacturer Model 字段,如下所示:
string manufacturer = rowExt.UsrManufacturer;
string model = rowExt.UsrManufacturerModel;
将“
UsrManufacturer
”和“UsrManufacturerModel
”替换为您正在使用的图形扩展中的实际字段的名称。