Mar*_*sen 2 x++ axapta dynamics-ax-2012
根据文件:
系统使用布尔OR逻辑连接所有标签.
这是否意味着构造一个在多个CriteriaElements之间执行布尔AND运算的QueryCriteria是完全不可能的?
你应该能够通过查询使用"脏技巧"来获得你想要的东西.通过使用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")));
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅以下链接:查询范围中的表达式