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

Multiple values in query range value in Dynamics AX 2012

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

How to build query with multiple values. I need to create filter which display only active BOMs in grid and I looking for solution. Here is my code which isnt working:

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

You have two options:

  1. add multiple ranges
  2. add multiple values to one range separated by commna

Option 1:

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

Option 2:

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