Axapta 向具有或位于两列的表单数据源添加条件

Axapta 向具有或位于两列的表单数据源添加条件,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,我必须构建一个专门的表单来查询InventTrans表中的一些购买交易 必须使用非空凭证或非空装箱单Id(PackingSlipId)选择交易记录 在查看如何在查询范围中指定此项时,我发现可以将此查询范围与表的RecId相关联。这是通常的和经典的方法吗?看看我的例子(这似乎有效) 这些称为范围表达式,是使用Query对象声明更复杂查询的唯一方法-请参阅 此外,请看(感谢) 关于它是否是经典的方式:不-仅在必要时使用它我见过它完全是这样做的,我从来没有感觉对过,但我知道你需要什么,这几乎是使用查询

我必须构建一个专门的表单来查询
InventTrans
表中的一些购买交易

必须使用非空凭证或非空装箱单Id(
PackingSlipId
)选择交易记录

在查看如何在查询范围中指定此项时,我发现可以将此查询范围与表的
RecId
相关联。这是通常的和经典的方法吗?看看我的例子(这似乎有效)


这些称为范围表达式,是使用
Query
对象声明更复杂查询的唯一方法-请参阅

此外,请看(感谢)


关于它是否是经典的方式:不-仅在必要时使用它

我见过它完全是这样做的,我从来没有感觉对过,但我知道你需要什么,这几乎是使用
查询
对象的唯一方法。Axaptapedia也有一篇很好的文章,其中包含了更多的细节和示例,我发现在使用查询表达式时这些都很有用。很好的一点-随着时间的推移,几乎忘记了这一方面:)会将其添加到答案中
   QueryBuildDataSource qbds;
   ;

   qbds =  this.query().dataSourceTable(tableNum(inventTrans));

   sysQuery::findOrCreateRange(qbds, fieldNum(InventTrans, RecId)).value(
    strfmt('(%1 != "") || (%2 != "")',
            fieldstr(InventTrans, Voucher),
            fieldstr(InventTrans, PackingSlipId)));