如何使用PXSelect获取用户定义的字段? (又称外部字段)

时间:2018-11-30 17:50:09

标签: acumatica

我已经在项目表中添加了一些字段。当SOLine更新时,我需要能够从代码中引用这些字段。

我有一个可以正常工作的PXSelect,并给了我一个InventoryItem,但是显然我需要进入Ext部分(又名,返回一个InventoryItemExt),但是我不清楚如何使PXSelect做到这一点。 / p>

这将返回我需要的物品:

      InventoryItem iiTheItem = PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>.Select(Base, row.InventoryID);

但是在这里失败:

dQPI = Convert.ToDecimal(iiTheItemExt.UsrLbsPerInch);

如果我将变量作为ext进行操作,则可以使用语法,但显然不会加载任何内容。

InventoryItemExt iiTheItemExt = null;
dQPI = Convert.ToDecimal(iiTheItemExt.UsrLbsPerInch);

如何桥接PXSelect和所需的类?预先感谢!

3 个答案:

答案 0 :(得分:2)

PXSelect仍然可以。您需要使用基本DAC记录调用GetExtension方法以获得对DAC扩展的引用。

以下是一些用法示例:

InventoryItemExt iiTheItemExt = iiTheItem.GetExtension<InventoryItemExt>();
InventoryItemExt iiTheItemExt = Base.Caches[typeof(InventoryItem)].GetExtension<InventoryItemExt>(iiTheItem);

答案 1 :(得分:1)

假设您的扩展名为InventoryItemExt ...

<html>
	<div class="style-it">
		<div>
			CSS
		</div>
		<div>
			IS
		</div>
		<div>
			AWESOME
		</div>
	</div>
</html>

答案 2 :(得分:0)

下面是一个代码示例,该代码示例根据指定的条件检索InventoryItem,将其返回,然后访问其声明的扩展名。

            InventoryItemExtension itemExt;
            InventoryItem item = PXSelect<InventoryItem, Where<InventoryItem.inventoryCD, Equal<Required<InventoryItem.inventoryCD>>>>.Select(this.Base, new object[] { "TEST" });
            if(item != null)
            {
                itemExt = PXCache<InventoryItem>.GetExtension<InventoryItemExtension>(item);
                decimal? dQPI = Convert.ToDecimal(itemExt.UsrLbsPerInch);
            }