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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2007, 13:01   #1  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
? Снова временные таблицы
Временная таблица заполняется в классе, затем выводится в отчете.

X++:
                while (qRunL_3.next())
                {
                    level_3 = qRunL_3.get(tableNum(tmpAssetTable_RU));
                    while (qRunL_4.next())
                    {
                        level_4 = qRunL_4.get(tableNum(tmpAssetTable_RU));
                        rAssetTable = rAssetTable::find(level_4.AssetId);
                        element.send(rAssetTable);
                    }
                }
Проблема в том что когда у нас выбирается следующая запись в level_4, то в level_3 тоже изменяется запись на ту же самую.
qRunL_4 и qRunL_3 создаются одним и тем же методом, у каждого вызывается setCursor(tmpTable).
Кто-нибудь может подсказать причину такого поведения?
Заранее спасибо.
Старый 12.03.2007, 13:06   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
надо делать reset() для qRunL_4, по идее.
Старый 12.03.2007, 13:17   #3  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Зачем? В переменную level_3 заносится та же запись что и в level_4 уже при первом проходе по вложенному циклу. В итоге получается что внешний цикл перебирает записи одновременно с внутренним.
Старый 12.03.2007, 13:19   #4  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Советую создать еще один экземпляр временной таблицы, вложенный цикл крутить по ней
Старый 12.03.2007, 13:24   #5  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
А каким образом это можно сделать? Вроде бы и так каждый раз новый QueryRun создаю. Да и переменные разные.
Старый 12.03.2007, 13:31   #6  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Цитата:
Сообщение от vasiliy Посмотреть сообщение
Временная таблица заполняется в классе...
параллельно заполнить еще один экземпляр.
Затем перед циклом:
X++:
qRunL_3.setcursor(tmpTable_1);
qRunL_4.setcursor(tmpTable_2)
За это сообщение автора поблагодарили: vasiliy (1).
Старый 12.03.2007, 13:31   #7  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,740 / 404 (17) +++++++
Регистрация: 23.03.2006
X++:
tmpTable_1.setTmpData(tmpTable)
tmpTable_1 используй для второго цикла
За это сообщение автора поблагодарили: vasiliy (1).
Старый 12.03.2007, 13:54   #8  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Спасибо за совет, помогло
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
И снова Query и временные таблицы Def DAX: Программирование 19 08.12.2006 15:46
Не страшно ли временные таблицы временно сделать постоянными? Gustav DAX: Программирование 11 09.02.2006 11:04
Временные таблицы vasiliy DAX: Программирование 6 09.11.2004 11:04
Временные таблицы Diamond DAX: Программирование 3 30.12.2003 09:33
Временные таблицы в запросе Dron AKA andy DAX: Программирование 4 06.09.2002 12:14

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

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

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