QueryBuildRange的各种条件的总结

来源:互联网 发布:h5 js开发3d 编辑:程序博客网 时间:2024/04/30 19:14

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")));

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

0 0