Acumatica销售订单更改项目搜索以确定精确匹配的优先级?

Acumatica销售订单更改项目搜索以确定精确匹配的优先级?,acumatica,Acumatica,所以,我甚至不确定这是否是问这个问题的正确地点,但我还是要在那里拍摄 我们有一个项目清单,例如:416r.5、6r.5、6r.562。用户输入6r.5,这是一个精确匹配,但也是416r.5的一部分(它前面的列表中以字母数字显示) 用户表示,理想的解决方案是只从字段开始搜索,例如:当我键入6r时,我只得到以6r开头的项目,而不是任何以6r开头的项目(从技术上讲,他们希望以6r开头的项目位于列表的顶部,所有以6r开头的项目位于以6r开头的项目的下方。我已经粉碎了这个想法。) 另一种方法是,如果我输入

所以,我甚至不确定这是否是问这个问题的正确地点,但我还是要在那里拍摄

我们有一个项目清单,例如:416r.5、6r.5、6r.562。用户输入6r.5,这是一个精确匹配,但也是416r.5的一部分(它前面的列表中以字母数字显示)

用户表示,理想的解决方案是只从字段开始搜索,例如:当我键入6r时,我只得到以6r开头的项目,而不是任何以6r开头的项目(从技术上讲,他们希望以6r开头的项目位于列表的顶部,所有以6r开头的项目位于以6r开头的项目的下方。我已经粉碎了这个想法。)

另一种方法是,如果我输入一个数字,并且它与优先级完全匹配。在本例中,用户输入了6r.5(这是一个精确匹配),但移动很快,没有看到列表中的第一项是416r.5


有人对此有什么想法吗?

Acumatica正在为搜索生成如下SQL

SET @P0 = '4c645ada-3a08-46ea-acf5-dbdb5d14f635'; SET @P1 = '%test%'; SET @P2 = '%test%'; 
SELECT *
FROM  PMProject
WHERE ( PMProject.CompanyID IN ( 1, 9) AND 2 =  ASCII ( SUBSTRING( PMProject.CompanyMask, 3, 1)) & 2) 
AND PMProject.DeletedDatabaseRecord = 0 AND ( ( PMProject.BaseType = 'P' 
AND ( PMProject.RestrictToEmployeeList = 0 OR EPEmployeeContract.EmployeeID IS NOT NULL ) 
AND 1 = 1 AND ( PMProject.VisibleInTA = 1 OR PMProject.NonProject = 1)) 
AND ( **( PMProject.ContractCD LIKE REPLACE( @P1, '\\', '\\\\') COLLATE utf8mb4_general_ci)**
OR ( **PMProject.Description LIKE REPLACE( @P2, '\\', '\\\\') COLLATE utf8mb4_general_ci**)))
ORDER BY PMProject.ContractCD, PMProject.Description, PMProject.ContractID
LIMIT 15 /*  */
正如您所看到的,它将LIKE与“%test%”一起使用,这将返回包含test的所有结果。
我认为这种行为无法定制。
在您的例子中,问题是InventoryID将始终包含6r.5和416r.5,Acumatica正在按KeyField和Description字段进行搜索