Class中Query Filter

本文介绍了一种使用AXAPython进行复杂数据查询的方法,包括创建Query对象,设置跨公司查询,添加公司范围,构建过滤条件,以及从SalesLine和InventTable表中获取并处理数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、建立Query void
private Query CreatedQuery()
{
Query query = new Query();
;
query.allowCrossCompany(true);
query.addCompanyRange("C01");
return query;
}
2、Query filter(过滤)
private QueryBuildRange CreatedQueryFilter(QueryBuildDataSource _qbds,
TableId _tableId,
str _fieldName,
str _filterString)
{
QueryBuildRange qbr;
;
_qbds.addRange(fieldName2Id(_tableId,_fieldName)).value(_filterString);
return qbr;
}
3、调用
void GetxxxMoData()
{
Query q = this.CreatedQuery();
QueryBuildDataSource qbds,qbds1;
QueryRun qr;
SalesLine curSalesLine;
InventTable invTable;
InventPackagingGroup packagingGroup;
str typeStr = "SalesType";
str dateStr = "ShippingDateRequested";
str accountStr = "CustAccount";
str remQtyStr = "RemainSalesPhysical";
int icount;
;
qbds = q.addDataSource(TableNum(SalesLine));
this.CreatedQueryFilter(qbds,TableNum(SalesLine),typeStr,Enum2Str(SalesType::Blanket));
this.CreatedQueryFilter(qbds,TableNum(SalesLine),dateStr,SysQuery::range(fromDate,toDate));
this.CreatedQueryFilter(qbds,TableNum(SalesLine),remQtyStr,">0");
this.CreatedQueryFilter(qbds,TableNum(SalesLine),accountStr,"xxx");
this.CreatedQueryFilter(qbds,TableNum(SalesLine),"ItemId","xxx");
qbds1 = qbds.addDataSource(TableNum(InventTable));
qbds1.joinMode(JoinMode::InnerJoin);
qbds1.addLink(fieldNum(SalesLine,ItemId),fieldNum(InventTable,ItemId));
qr = new QueryRun(q);
while (qr.next())
{
icount++;
packagingGroup = null;
sysProgress.setText(strfmt("Searching Mo data Records %1", icount));
curSalesLine = qr.get(TableNum(SalesLine));
invTable = qr.get(TableNum(InventTable));
......
}

转载于:https://www.cnblogs.com/xtwkh1973/p/10990493.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值