2

根据文档

系统使用布尔或逻辑连接所有标签。

这是否意味着完全不可能构造一个在多个 CriteriaElement 之间执行布尔 AND 操作的 QueryCriteria?

4

1 回答 1

5

您应该能够通过对查询使用“肮脏的技巧”来获得所需的内容。有一种方法可以通过使用 DataArea 字段或 RecId 字段并放入您的表达式来将自定义表达式放入查询范围中。

例子:

query = new Query();
dsInventTable = query.addDataSource(tableNum(InventTable));

// Add our range
queryBuildRange = dsInventTable.addRange(fieldNum(InventTable, DataAreaId));

queryBuildRange.value(strFmt('((%1 == %2) || ((%1 == %3) && (%4 == "%5")))',
    fieldStr(InventTable, ItemType),
    any2int(ItemType::Service),
    any2int(ItemType::Item),
    fieldStr(InventTable, ProjCategoryId),
    queryValue("Spares")));

有关详细信息,请参阅以下链接:查询范围中的表达式

于 2013-03-27T22:13:39.580 回答