查询范围不等于零

时间:2014-05-13 20:26:43

标签: axapta x++ dynamics-ax-2012

我在AX 2012 R2环境中。

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

以下代码在运行时失败,异常"无效范围"。

qbrLegalEntity = qbds.addRange(fieldNum(HcmEmployment, LegalEntity));
strRangeCondition = '(%1 != %2)';
qbrLegalEntity.value(strFmt(strRangeCondition, 
                        fieldStr(HcmEmployment, LegalEntity),
                        queryValue("0")));

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

谢谢。

1 个答案:

答案 0 :(得分:5)

不要让它变得更难:

qbds.addRange(fieldNum(HcmEmployment,LegalEntity)).value(SysQuery::valueNot(0));

查询表达式失败的原因是使用引用零的queryValue("0")。将其更改为0也会起作用,但又太费力了。

更短的是:

qbds.addRange(fieldNum(HcmEmployment,LegalEntity)).value('!0');

要诊断查询错误,请查看生成的SQL:

info(qbds.toString());