Warm tip: This article is reproduced from serverfault.com, please click

axapta-动态 AX 2012 中的查询范围值中的多个值

(axapta - Multiple values in query range value in Dynamics AX 2012)

发布于 2014-10-17 13:04:17

如何生成具有多个值的查询。我需要创建仅在网格中显示活动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();
Questioner
user3824908
Viewed
0
Matej 2014-10-17 21:28:02

你有两种选择:

  1. 添加多个范围
  2. 将多个值添加到一个以逗号分隔的范围

选项 1:

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

选项 2:

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