自定义查找和分组依据

Max*_*Max 6 x++ axapta dynamics-ax-2009

TLDR:当使用查找的字段不为空时,为什么在查找中禁用group by子句?

我想对表单中的字段进行自定义查找.该表CTable如下所示:

Val Spec
------------
A   alpha
A   beta
A   gamma
B   delta
C   epsilon
Run Code Online (Sandbox Code Playgroud)

查找仅涉及Val使用具有基本关系的EDT定义的列:Val == CTable.Val

查找显然给了我一个这样的列表:

A
A
A
B
C
Run Code Online (Sandbox Code Playgroud)

让我们去一个小组来摆脱所有重复的As,我想!有点像:

QueryBuildDataSource.orderMode(OrderMode::GroupBy);
QueryBuildDataSource.addGroupByField(fieldNum(CTable, Val));
Run Code Online (Sandbox Code Playgroud)

现在出现了我的奇怪行为以及我的问题的实际观点.在一个空字段上,group by被正确执行,我得到了这个:

A
B
C
Run Code Online (Sandbox Code Playgroud)

现在让我们在查找中选择"A",然后再次执行查找,因为我想点击"B".现在,group by已被禁用,原因不明,我得到的结果与之前的结果相同.

为什么会这样?我怎么能克服这个?

小智 5

同样的问题和有用的答案:http: //dynamicsuser.net/forums/t/63438.aspx

您可以通过将SysTableLookup中的useLookupValues设置为false来禁用此行为.不幸的是,我不知道为什么AX会这样做.我怀疑它将OrderMode更改为OrderBy.

  • 请注意,不鼓励[仅链接答案](http://meta.stackoverflow.com/tags/link-only-answers/info),SO答案应该是搜索解决方案的终点(相比之下)引用的另一个中途停留,随着时间的推移往往会变得陈旧.请考虑在此处添加独立的概要,并将链接作为参考. (3认同)