AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2013, 13:55   #1  
Fizik is offline
Fizik
Участник
 
26 / 10 (1) +
Регистрация: 07.07.2005
Адрес: Владивосток
Спасибо, ds_q и ds_qr было новым. Но мне этого не хватило. Пишу на кнопку формы:
X++:
    queryRun = emplTable_qr;
    while(queryRun.next())
    {
        emplTable = queryRun.get(tablenum(emplTable));
        info(emplTable.EmplId);
        i++;
    }
    info(int2str(i));
    super();
Результат: первая запись в info не попадает. Видимо, надо как-то "сдвигать курсор" в начало.
При повторном вызове цикл не выполняется совсем. Я так понимаю, потому что qr закончен. Как начать его сначала?
Старый 16.09.2013, 21:44   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Fizik Посмотреть сообщение
При повторном вызове цикл не выполняется совсем. Я так понимаю, потому что qr закончен. Как начать его сначала?
X++:
QueryRun.reset();
ставлю везде на автопилоте. Всегда помогает.
За это сообщение автора поблагодарили: Fizik (1).
Старый 16.09.2013, 22:47   #3  
Aron is offline
Aron
Участник
 
2 / 11 (1) +
Регистрация: 13.05.2013
Цитата:
Сообщение от Fizik Посмотреть сообщение
Результат: первая запись в info не попадает. Видимо, надо как-то "сдвигать курсор" в начало.
При повторном вызове цикл не выполняется совсем. Я так понимаю, потому что qr закончен. Как начать его сначала?
Вспомните про конструкцию do{}while().
А после прохода сдвиньте курсор на первую позицию.
За это сообщение автора поблагодарили: Corkscrew (1).
Старый 17.09.2013, 18:34   #4  
LRA is offline
LRA
Участник
 
41 / 39 (2) +++
Регистрация: 19.12.2005
Адрес: Москва
Цитата:
Сообщение от Fizik Посмотреть сообщение
Пишу на кнопку формы:
X++:
    queryRun = emplTable_qr;
    while(queryRun.next())
    {
        emplTable = queryRun.get(tablenum(emplTable));
        info(emplTable.EmplId);
        i++;
    }
    info(int2str(i));
    super();
Результат: первая запись в info не попадает. Видимо, надо как-то "сдвигать курсор" в начало.
При повторном вызове цикл не выполняется совсем. Я так понимаю, потому что qr закончен. Как начать его сначала?
Однозначно queryRun.reset();

Но тут многое зависит и от того, что Вы собираетесь делать с queryRun. В большинстве случаев лучше создать новый queryRun = New QueryRun(query);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
ax-erp: Pass Query from dialog to Form and Filter records Blog bot DAX Blogs 0 18.09.2012 18:11
ax-erp: Get underlying SQL query using getSQLStatement [Dynamics AX 2012] Blog bot DAX Blogs 0 19.07.2012 18:11
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:34.