在Acumatica中,可以使用PXSearchable特性来创建可搜索的用户定义字段。下面是一个示例代码:
using PX.Data;
using PX.Objects.CR;
using PX.Objects.CS;
public class MyDAC : IBqlTable
{
// Define your fields here
// Add the PXSearchable attribute to the field
[PXSearchable(SM.SearchCategory.CR, // The search category
"{0}: {1}", // The format of the search content
new Type[] { typeof(MyDAC.field1), typeof(MyDAC.field2) }, // The fields to include in the search content
new Type[] { typeof(MyDAC.field1) }, // The fields to index
NumberFields = new Type[] { typeof(MyDAC.field2) }, // The fields to index as numbers
Line1Format = "{0}", // The format of the first line of the search content
Line2Format = "{0}" // The format of the second line of the search content
)]
public virtual string Field1 { get; set; }
// Add the PXSearchable attribute to another field if needed
[PXSearchable(SM.SearchCategory.CR, "{0}", new Type[] { typeof(MyDAC.field1) }, new Type[] { typeof(MyDAC.field2) })]
public virtual int? Field2 { get; set; }
}
上面的示例将Field1
和Field2
字段添加了PXSearchable
特性。PXSearchable
特性定义了搜索类别,搜索内容的格式,要包含在搜索内容中的字段,要索引的字段等信息。
此外,还需要确保在相关的PXGraph类中添加PXFullTextSearch
特性,以启用全文搜索功能:
[PXFullTextSearch(Enabled = true)]
public class MyGraph : PXGraph
{
// ...
}
要使用可搜索的用户定义字段,您需要在Acumatica中启用全文搜索功能。请确保您的Acumatica系统配置中启用了全文搜索,并在数据库中配置了全文搜索索引。