我必须建立一个专门的表单来查询InventTrans
表中的一些购买交易。
交易必须被选中,要么是非空的凭证,要么是非空的装箱单Id (PackingSlipId
)。
在查看如何在查询范围中指定此值时,我发现可以将此查询范围关联到表的RecId
。这是通常的经典做法吗?请看我的例子(似乎有效)。
QueryBuildDataSource qbds;
;
qbds = this.query().dataSourceTable(tableNum(inventTrans));
sysQuery::findOrCreateRange(qbds, fieldNum(InventTrans, RecId)).value(
strfmt('(%1 != "") || (%2 != "")',
fieldstr(InventTrans, Voucher),
fieldstr(InventTrans, PackingSlipId)));
这些被称为范围表达式,并且是使用Query
对象声明更复杂查询的唯一方法-请参阅此MSDN页面
另外看看这个Axaptapedia页面(感谢FH-Inway)
关于是否为经典方式:No - only在必要时使用