喜欢标题。
我需要从InventTable中选择记录。为此,我想使用动态数组中的seleted ItemId。问题是基于该数组的值构建过滤器。
答案 0 :(得分:1)
如果数组不是太大,您可以使用QueryBuildRange
,如下所示:
static void UseArrayToFilterRecords(Args _args)
{
str arr[5];
int i;
str items;
Query q;
QueryBuildDataSource qbds;
QueryRun qr;
InventTable inventTable;
// Populate the array for test purposes
arr[1] = '10003';
arr[2] = '10004';
arr[3] = '10005';
arr[4] = '10006';
arr[5] = '10007';
// Populate the string to be used in a filter with item numbers from the array
for (i = 1; i <= 5; i++)
{
items += items ? ',' + arr[i] : arr[i];
}
// Create a query
q = new Query();
qbds = q.addDataSource(tableNum(InventTable));
qbds.addRange(fieldNum(InventTable, ItemId)).value(items);
// Run the query and display result
qr = new QueryRun(q);
while (qr.next())
{
inventTable = qr.get(tableNum(InventTable));
info(strFmt('Item number: %1, Record-ID: %2', inventTable.ItemId, inventTable.RecId));
}
info('Job completed');
}
否则,您可以使用数组中的值填充另一个表并加入该表,并InventTable
仅选择所需的记录。