QueryBuildRange的各种条件的总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值