访问通过 Acumatica 中的扩展添加的用户定义字段

Accessing user-defined fields added via an extension in Acumatica

我有一个名为“UsrIsTeacherBook”的自定义字段,它已添加到具有以下扩展名的 InventoryItem:

namespace Lasalle.TeacherBooks
{
    public class InventoryItem_TeacherBooks_Extension : PXCacheExtension<InventoryItem>
    {
        [PXDBBool]
        [PXUIField(DisplayName = "Is Teacher Book")]
        public virtual bool? UsrIsTeacherBook { get; set; }
        public abstract class usrIsTeacherBook : IBqlField { }
    }
}

我需要能够从 SalesOrder 屏幕上的 SOLine 网格访问此 IsTeacherBook 字段的值。我在销售订单屏幕上的 SOLine 网格中添加了自定义字段 UsrTeacherBook,但我不知道如何使用 InventoryItem UsrIsTeacherBook 的值填充此字段。

我尝试通过以下方式自定义 SOLine 字段上的属性:

[PXDBBool]
[PXUIField(DisplayName="Teacher Manual", Visible = true, Enabled = false)] 
[PXFormula(typeof(Selector<SOLine.inventoryID, InventoryItemExt.usrIsTeacherBook>))]

但这产生了验证错误,"The type name 'usrIsTeacherBook' does not exist in the type 'PX.Objects.IN.InventoryItemExt'."

访问 InventoryItem IsTeacherBook 字段以在 SOLine 网格上填充我的字段的正确方法是什么?

您的扩展 class 名称是 InventoryItem_TeacherBooks_Extension,而不是 PXFormulaAttribute 中使用的 InventoryItemExt。您应该将扩展名称更改为 InventoryItemExt 或使用 InventoryItem_TeacherBooks_Extension.usrIsTeacherBook[ 修改 PXFormula 声明=18=]