在两列上使用 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)
关于是否是经典方式:否 - 仅在必要时使用
我必须构建一个专门的表格来查询 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)
关于是否是经典方式:否 - 仅在必要时使用