Class中Query Filter

1, the establishment Query void
private Query CreatedQuery()
{
Query query = new Query();
;
query.allowCrossCompany(true);
query.addCompanyRange("C01");
return query;
}
2, Query filter (filtered)
private QueryBuildRange CreatedQueryFilter(QueryBuildDataSource _qbds,
TableID _tableId,
str _fieldName,
str _filterString)
{
QueryBuildRange qbr;
;
_qbds.addRange(fieldName2Id(_tableId,_fieldName)).value(_filterString);
return qbr;
}
3, call
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));
......
}

Guess you like

Origin www.cnblogs.com/xtwkh1973/p/10990493.html