在两列上使用 OR 向表单数据源添加条件

Add a condition to a form datasource with OR on two columns

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

必须选择交易,要么使用非空凭证,要么使用非空装箱单 ID (PackingSlipId)。

在查看如何在查询范围内指定它时,我发现可以将此查询范围关联到 table 的 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 对象声明更复杂查询的唯一方法 - 请参阅 this MSDN page

另外看看this Axaptapedia page (thanks to FH-Inway)

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