Axapta 查询范围不等于零
我在AX 2012 R2环境中 我想向HcmEmployment表添加一个查询范围,并筛选出LegalEntity值为0的行 以下代码在运行时失败,异常为“无效范围” 是否可以对该范围条件进行编码 谢谢。不要让事情变得更难: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也可以,但又太费力了 更简短的
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());