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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.01.2006, 14:56   #1  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Проблема с циклом while select...
Есть запрос, возвращающий две записи, но цикл отрабатывает один раз

Код:
   while select InventDimId from _invJourTrans group by InventDimId
   where _invJourTrans.JournalId==_invJourTable.JournalId
{
    print _invJourTrans.InventDimId;

   if (outputToWord.makeDocument())
    {
        try
        {

           _invJourTable = _args.record();

           select  firstonly _invJourTrans where _invJourTrans.JournalId==_invJourTable.JournalId;
                outputToWord.run(_args);

            outputToWord.releaseDocument();
        }
        catch(Exception::Error)
        {
            outputToWord.releaseDocument();
        }
    }
 }
}
если убрать из while Обработку if, то print выводит две записи, а так выводит одну запись, if отрабатывает и цикл прерывается. самое интересно то, что я создал табличку с тремя записями и попробовал сделать так:

Код:
     while select * from ABC //where _invDim.inventDimId == _invJourTrans.InventDimId
{
    print ABC.Field1;

   if (outputToWord.makeDocument())
    {
        try
        {

           _invJourTable = _args.record();

           select  firstonly _invJourTrans where _invJourTrans.JournalId==_invJourTable.JournalId;
                outputToWord.run(_args);

            outputToWord.releaseDocument();
        }
        catch(Exception::Error)
        {
            outputToWord.releaseDocument();
        }
    }
 }
}
и цикл отработал все три раза!

В чем может быть проблема?
Старый 18.01.2006, 15:16   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Сдается мне,
X++:
select  firstonly _invJourTrans where _invJourTrans.JournalId==_invJourTable.JournalId;
портит курсор заведите отдельную табличную переменную.
Старый 18.01.2006, 15:24   #3  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
belugin

Спасибо, оказывается в это и было дело!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
2 while select или join? _scorp_ DAX: Программирование 9 23.01.2009 16:02
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
gatesasbait: Reverse keyword on Select Statements Blog bot DAX Blogs 0 08.02.2008 00:10
Fred Shen: Always use recId to know if a select statement returns a record Blog bot DAX Blogs 0 28.10.2006 16:40
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43

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

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

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