Dynamics AX 2012中查询范围值中的多个值

Mor*_*ern 4 x++ axapta dynamics-ax-2012

如何使用多个值构建查询.我需要创建过滤器,在网格中只显示活动的BOM,我正在寻找解决方案.这是我的代码,它不起作用:

public void executeQuery() 
{
QueryBuildRange         qbr;
QueryRun                queryRun;
Query q = new Query();

qbr = SysQuery::findOrCreateRange(BOMTable_q.dataSourceTable(tableNum(BOMTable)), fieldNum(BOMTable, BOMId));

if (activeButton==false)
{
    qbr.value(SysQuery::valueUnlimited());
}   
else
{
    while select BOMVersion where BOMVersion.Active==true && BOMVersion.Approved==true{
    qbr.value(queryValue(BOMVersion.BOMId));
}
super();
Run Code Online (Sandbox Code Playgroud)

Mat*_*tej 8

您有两种选择:

  1. 添加多个范围
  2. 将多个值添加到由commna分隔的一个范围

选项1:

QueryBuildDataSource qbds = q.dataSourceTable(BOMTable);
QueryBuildRange qbr;
while (...)
{
    qbr = qbds.addRange(fieldNum(BOMTable, BOMId));
    qbr.value(queryValue(BOMVersion.BOMId));
}
Run Code Online (Sandbox Code Playgroud)

选项2:

QueryBuildRange qbr = q.dataSourceTable(BOMTable).addRange(fieldNum(BOMTable, BOMId));
container c;
while (...)
{
    c+= queryValue(BOMVersion.BOMId);
}
qbr.value(con2str(c));
Run Code Online (Sandbox Code Playgroud)