Axapta 如何选择“如果记录”;其中;条件在数组中
就像标题一样Axapta 如何选择“如果记录”;其中;条件在数组中,axapta,x++,Axapta,X++,就像标题一样 我需要从InventTable中选择记录。为此,我想使用动态数组中的seleted ItemId。问题是基于该数组中的值构建一个过滤器 如果数组不是太大,可以使用QueryBuildRange如下: static void UseArrayToFilterRecords(Args _args) { str arr[5]; int i; str items; Query q; QueryBuildDataSource qbds; Que
我需要从InventTable中选择记录。为此,我想使用动态数组中的seleted ItemId。问题是基于该数组中的值构建一个过滤器 如果数组不是太大,可以使用
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');
}
静态无效UseArrayToFilterRecords(Args\u Args)
{
str-arr[5];
int i;
str项目;
查询q;
QueryBuildDataSource qbds;
QueryRun qr;
可发明的可发明的;
//为测试目的填充数组
arr[1]=“10003”;
arr[2]=“10004”;
arr[3]=“10005”;
arr[4]=“10006”;
arr[5]=“10007”;
//使用数组中的项目编号填充要在筛选器中使用的字符串
对于(i=1;我可以与您共享一些代码吗?从您的问题中我可以看出,它应该非常简单,只需获取数组值,将其放入ItemId变量中,并在where条件下使用该变量即可。