Acumatica中可搜索的用户定义字段

问题描述

我最近在StockItem中添加了一些用户定义的字段,在一些记录中添加了值,然后尝试按值搜索它们。不幸的是,搜索引擎不知道我的UDF值。

有没有办法让用户定义的字段可搜索

解决方法

是的,正如Brian指出的,我们需要为该特定DAC的NoteID字段添加一个PXSearchable属性。以下来自SOOrder DAC文件的代码,它可以帮助您满足要求。

    #region NoteID
    public abstract class noteID : PX.Data.BQL.BqlGuid.Field<noteID> { }
    protected Guid? _NoteID;
    [**PXSearchable**(SM.SearchCategory.SO,"{0}: {1} - {3}",new Type[] { typeof(SOOrder.orderType),typeof(SOOrder.orderNbr),typeof(SOOrder.customerID),typeof(Customer.acctName) },new Type[] { typeof(SOOrder.customerRefNbr),typeof(SOOrder.customerOrderNbr),typeof(SOOrder.orderDesc) },NumberFields = new Type[] { typeof(SOOrder.orderNbr) },Line1Format = "{0:d}{1}{2}{3}",Line1Fields = new Type[] { typeof(SOOrder.orderDate),typeof(SOOrder.status),typeof(SOOrder.customerRefNbr),typeof(SOOrder.customerOrderNbr) },Line2Format = "{0}",Line2Fields = new Type[] { typeof(SOOrder.orderDesc) },MatchWithJoin = typeof(InnerJoin<Customer,On<Customer.bAccountID,Equal<SOOrder.customerID>>>),SelectForFastIndexing = typeof(Select2<SOOrder,InnerJoin<Customer,On<SOOrder.customerID,Equal<Customer.bAccountID>>>>)
   )]
    [PXNote(new Type[0],ShowInReferenceSelector = true,Selector = typeof(
        Search2<
            SOOrder.orderNbr,LeftJoinSingleTable<Customer,Equal<Customer.bAccountID>,And<Where<Match<Customer,Current<AccessInfo.userName>>>>>>,Where<
            Customer.bAccountID,IsNotNull,Or<Exists<
                Select<
                    SOOrderType,Where<
                    SOOrderType.orderType,Equal<SOOrder.orderType>,And<SOOrderType.aRDocType,Equal<ARDocType.noUpdate>>>>>>>,OrderBy<
            Desc<SOOrder.orderNbr>>>))]
    public virtual Guid? NoteID
    {
        get
        {
            return this._NoteID;
        }
        set
        {
            this._NoteID = value;
        }
    }
    #endregion