query = new Query();
qbds = query.addDataSource(tableNum(InventTable));
qbr = qbds.addRange(fieldNum(InventTable, DataAreaId));
1. 等于
qbr.value("Item1")
qbr.value(strFmt('(ItemId == "%1")', queryValue("Item1")));
2.or
qbr.value(strFmt('((ItemType == %1) || (ItemId == "%2"))', any2int(ItemType::Service), queryValue("Item1")));
qbds = query.addDataSource(tableNum(InventTable));
qbr = qbds.addRange(fieldNum(InventTable, DataAreaId));
3. 各种比较
qbr.value(strFmt('(ModifiedDate > %1)', "2015/01/10"));
4.各种组合
qbr.value(strFmt('((%1 == %2) || ((%1 == %3) && (%4 == "%5")))',fieldStr(InventTable, ItemType),any2int(ItemType::Service),any2int(ItemType::Item),fieldStr(InventTable, ProjCategoryId),queryValue("Spares")));
5.Multiple Enum values
qbr.value(strfmt("%1,%2", enum2str(InventTransType::TransferOrderReceive), enum2str(InventTransType::purch))));
qbr.value(enum2str(InventTransType::TransferOrderReceive), enum2str(InventTransType::purch));
6.IN
QueryBuildDataSource qbds = q.dataSourceTable(BOMTable); QueryBuildRange qbr; while (...) { qbr = qbds.addRange(fieldNum(BOMTable, BOMId)); qbr.value(queryValue(BOMVersion.BOMId)); }
QueryBuildRange qbr = q.dataSourceTable(BOMTable).addRange(fieldNum(BOMTable, BOMId));
container c;
while (...)
{
c+= queryValue(BOMVersion.BOMId);
}
qbr.value(con2str(c));
7. Like
SysQuery::findOrCreateRange(ProjTable_ds.query().dataSourceTable(tableNum(projTable)),fieldNum(projTable, projId)).value(queryValue(SysQuery::ValueLikeAfter(ProjTable.parentId)));
ValueLike = *AA* ValueLikeAfter = A*
8. Not Like
qbr.value(strFmt("%1,%2",strFmt('!%1*','1'),strFmt('!%1*','2')));
== where (!(CustGroup.CustGroup like '1*') && !(CustGroup.CustGroup like '2*'))
9. 终极方案
http://nathalie.gimenez.free.fr/DynamicsAX/DynamicsProg_queryrange.html#String