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条件下使用该变量即可。