Axapta 查询范围不等于零

Axapta 查询范围不等于零,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我在AX 2012 R2环境中 我想向HcmEmployment表添加一个查询范围,并筛选出LegalEntity值为0的行 以下代码在运行时失败,异常为“无效范围” 是否可以对该范围条件进行编码 谢谢。不要让事情变得更难: qbds.addRange(fieldNum(HcmEmployment,LegalEntity)).value(SysQuery::valueNot(0)); 查询表达式失败的原因是使用了带引号的queryValue(“0”)。将其更改为0也可以,但又太费力了 更简短的

我在AX 2012 R2环境中

我想向HcmEmployment表添加一个查询范围,并筛选出LegalEntity值为0的行

以下代码在运行时失败,异常为“无效范围”

是否可以对该范围条件进行编码

谢谢。

不要让事情变得更难:

qbds.addRange(fieldNum(HcmEmployment,LegalEntity)).value(SysQuery::valueNot(0));
查询表达式失败的原因是使用了带引号的
queryValue(“0”)
。将其更改为
0
也可以,但又太费力了

更简短的是:

qbds.addRange(fieldNum(HcmEmployment,LegalEntity)).value('!0');
要诊断查询错误,请查看生成的SQL:

info(qbds.toString());

抱歉,获取相同的错误-范围无效。SysQuery::valueNot和value方法都返回字符串,LegalEntity是int。因此,“Invalid Range”消息是有意义的。我错过什么了吗?你一定是把别的事情搞砸了
SysQuery::value
valueNot
返回字符串,因为这是
value
函数唯一接受的内容。从HcmWorker.RecId=HcmEmployment.Worker和((NOT(LegalEntity=0))中选择HcmWorker(HcmEmployment),其中HcmWorker.RecId=HcmEmployment.Worker和((NOT(NOT(LegalEntity=0))我犯了错误。我的queryBuildDataSource指向了错误的表。代码现在运行时没有“无效范围”异常。但是,它不会产生预期的结果。未强制执行范围(不等于0)。查询的字符串表示如下:从HcmWorker.RecId=HcmEmployment.Worker的HcmEmployment(HcmEmployment)中选择((NOT(LegalEntity=0)),这是联接的一部分吗?如果没有适当的上下文,很难猜测问题是什么。如果你发布表格或其他什么,机会会更好。此外,上述问题已得到回答,因此最好发布新问题。
info(qbds.toString());