Показать сообщение отдельно
Старый 30.03.2016, 17:43   #1  
Alucardkds is offline
Alucardkds
Участник
 
8 / 10 (1) +
Регистрация: 04.10.2014
Работа с Query.
Добрый день.
Я только начинаю тесно работать с MS DynamicsAX, просьба помочь разобраться с одним вопросом.
Есть диалог, с кнопкой "Выбрать", внутри должно быть 2 поля.
Но проблема в том, что при данном коде отображается только одно из полей, в зависимости от того, какой queryRun возвращается.
Объявил 2 QueryRun'а:
X++:
class ... extends RunBase

{
...
    QueryRun                    queryrun1, queryrun2;
...
}
Объявил 2 query, привязал 2 датасурса:
X++:
void initQuery()
{
    query query1 = new query();
    query query2 = new query();
    QueryBuildDataSource    qbds1, qbds2;
    ;

    qbds1= query1.addDataSource(tableNum(Table1));
    qbds2= query2.addDataSource(tablenum(Table2));

    queryrun1 = new queryRun(query1);
    queryrun2 = new queryRun(query2);
}
Далее есть метод, где данные обрабатываются и выводятся в ёксель:
X++:
void printSheet1()
{
...
    EDT    edt1, edt2;
    Table1    table1;
    Table2    table2;
...
    ;
    while (queryrun1.next())
    {
        table1 = queryrun1.get(tablenum(Table1));
        edt1 = Table1.Field1;

        while (queryrun2.next())
        {
            table2 = queryrun2.get(tableNum(Table2));
            edt2 = Table2.Field2;
            ....
        }
        queryrun2.reset();
    }
    queryrun1.reset();
}
Но всё упирается в следующий метод.
Если возвращаем queryrun1, то но форме будет только поле с Table1. И, соответственно, перебор будет по указанным значениям из Table1 и всем значениям из Table2. И наоборот.
X++:
public QueryRun queryRun()
{
    return queryrun1;
    //return queryrun2;
}
Может можно как-то всё проще реализовать или подскажите выход из сложившейся ситуации, какие могут быть варианты?