"(%1.%2 like %3.%4)",
filteredDs.name(),
fieldStr(FilteredTable, Field1),
definitionDs.name(),
fieldStr(FilterDefiniton, Field1)));
lookup filter
forma eklenen bir alan ve bu alan lookup ise filtre verme
Query query = new Query();
QueryBuildDataSource qbds;
QueryBuildRange qr;
SysMultiTableLookup sysTableLookup;
qr = query.addDataSource(tableNum(CustTable)).addRange(FieldNum(CustTable,RecId));
//qr.value(strFmt('(!(AccountNum LIKE "%1"))',SysQuery::valueLikeAfter('M')));
// qr.value(strFmt('(!(AccountNum LIKE "%1"))',"M*"));
qr.value(strFmt('(!(AccountNum LIKE "M*"))'));
//status(2); bu recid değilde accountnum da gösterilecekse enable yapar
sysTableLookup = SysMultiTableLookup::newParameters(this, query);
sysTableLookup.addLookupField(fieldNum(CustTable, AccountNum));
sysTableLookup.addLookupField(fieldNum(CustTable, Party));
sysTableLookup.performFormLookup();
örnek
Query q;
Queryrun qr;
QueryBuildRange qbr;
QueryBuildDataSource qbds;
InventTrans iv;
Real Total;
str range;
/* The following query produces the same results as:
while select sum(qty) from inventTrans
where (inventtrans.ItemId == "1016756") || inventtrans.ItemId == "1032958"
join inventDim
group by inventBatchId
where inventDim.InventDimId == inventTrans.InventDimId */
q = new query("Inventory_Transactions");
qbds = q.addDataSource(tablenum(InventTrans));
qbds.addSelectionField(fieldnum(InventTrans,Qty),selectionfield::Sum);
qbr = qbds.addRange(fieldnum(InventTrans,ItemId));
qbr.value(strfmt('((%1 == "%2") || (%1 == "%3"))',fieldstr(inventtrans,ItemId),'1016756','1032958'));
range = strfmt('((ItemId == "%1")||(ItemID =="%2"))',queryvalue('1016756'),queryvalue('1032958'));
qbr.value(range);
qbds = qbds.addDataSource(tablenum(InventDim));
qbds.relations(true);
qbds.orderMode(ordermode::GroupBy);
qbds.addSortField(fieldnum(InventDim,InventBatchId));
qr = new QueryRun(q); // If the user clicks OK, continue.
if (qr.prompt())
{
while (qr.next())
{
iv = qr.get(tablenum(InventTrans));
total = iv.Qty;
}
}
info(strfmt("Quantity: %1",total));
info (qr.query().dataSourceNo(1).toString());
Hiç yorum yok:
Yorum Gönder