自定义选择器属性 - 'Customer' 在系统中找不到

Custom Selector Attribute - 'Customer' Cannot be found in the system

我做了一个自定义 select 或者只显示当前用户的客户,但是当我 select 一个客户时我得到错误: 'Customer' 在系统中找不到.

自定义代码 selector 以及我如何在 DAC 上实现它:

[PXNonInstantiatedExtension]
public class SO_SOOrder_ExistingColumn : PXCacheExtension<PX.Objects.SO.SOOrder>
{
    #region CustomerID  
    [PXMergeAttributes(Method = MergeMethod.Merge)]     
    [PXForeignReference(typeof(Field<SOOrder.customerID>.IsRelatedTo<BAccount.bAccountID>))]
    [SalesRepCustomer]  
   
    public int? CustomerID { get; set; }
    #endregion
}

public class SalesRepCustomer : PXCustomSelectorAttribute
{
    public SalesRepCustomer() : base(typeof(Customer.acctCD))
    {
        this.DescriptionField = typeof(Customer.acctCD);
    }
    protected virtual IEnumerable GetRecords()
    {

        foreach (Customer pc in PXSelect<Customer>.Select(this._Graph))
        {
            //Getting Current UserID
            var cache1 = _Graph.Caches[BqlCommand.GetItemType(typeof(AccessInfo.userName))];
            AccessInfo currentCacheObjecta = (AccessInfo)cache1.Current;
            var userName = currentCacheObjecta.UserName;
            SalesPerson person = PXSelect<SalesPerson, Where<SalesPerson.descr, Equal<Required<AccessInfo.userName>>>>.Select(_Graph, userName);
            if (person != null)
            {
                CustSalesPeople custSalesPeople = PXSelect<CustSalesPeople, Where<CustSalesPeople.salesPersonID, Equal<Required<SalesPerson.salesPersonID>>, And<CustSalesPeople.bAccountID, Equal<Required<CustSalesPeople.bAccountID>>>>>.Select(_Graph, person.SalesPersonID, pc.BAccountID);
                //return all customers related to this SalesPersonID in the CustSalesPeople table                   
                if (!(custSalesPeople is null))
                {
                    yield return pc;
                }
            }
            else
            {
                //current user is not a sales person
                //return all of the customers
                yield return pc;
            }
        }
    }
}

select或销售订单屏幕的屏幕截图:

如有任何帮助,我们将不胜感激

你应该让构造函数看起来像

        public SalesRepCustomer() : base(typeof(Customer.bAccountID))
        {
            this.DescriptionField = typeof(Customer.acctName);
            this.SubstituteKey = typeof(Customer.acctCD);
        }

您传递给基本构造函数的第一个类型是将用于该字段的值的类型。

在这种情况下,您需要客户 ID(一个整数)并且您当前正在使用 AcctCD(一个字符串)字段。描述字段通常是客户帐户的名称,替换键将使用户看到 AcctCD 而不是客户 ID(实际值),它只是一个整数。