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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2010, 12:32   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Покажите весь код от начала метода до строки
X++:
 While(qrRun.next())
))))
Старый 20.04.2010, 12:49   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Чтобы не париться, предлагаю следующий способ:
Объявляете новую переменную с типом SalesTable
X++:
SalesTable      localSalesTable;
далее, в месте, где у вас идет присвоение, написать такой код
X++:
localSalesTable = salesTable::find(salesTable.SalesId);
curTime = localSalesTable.CreatedTime;
info(int2str(curTime));
у вас скорее всего какая-то группировка идет и не указана группировка по CreatedTime
За это сообщение автора поблагодарили: Ulyxess (1).
Старый 20.04.2010, 15:18   #3  
Ulyxess is offline
Ulyxess
Участник
 
13 / 10 (1) +
Регистрация: 06.04.2010
Спасибо, Ace, помогла новая переменная

А смысл можете объяснить? Какой группировки не было?
Старый 20.04.2010, 18:51   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Ulyxess Посмотреть сообщение
А смысл можете объяснить? Какой группировки не было?
Так у Вас еще и запрос с группировкой? Тогда надо было включить CreatedTime в список полей группировки.

Тут проблема в том, что запрос, может возвращать не все поля таблицы. Ну, например, запрос вида

X++:
select salesId, CustAccount from salesTable where salesTable.SalesId = "12345"
Очевидно вернет значения только 2 полей, указанных в списке полей. Но результат этой выборки будет записан в табличную переменную SalesTable, которая, что также очевидно, содержит все поля таблицы. Разумеется, не пустые значения будут только у тех полей, которые были указаны в запросе. А все остальные поля табличной переменной получат пустые значения. Ведь их значения никто не извлекал из таблицы.

Но в подобном запросе это как-бы "очевидно". Просто видно. Однако в запросе еще автоматически подтягиваются значения полей из группировки. Например

X++:
select maxOf(CustAccount) from salesTable group by SalesId where salesTable.SalesId = "12345"
Вроде бы, значения поля salesId в списке полей явно не указано. Тем не менее, если прочитать его значение в в табличной переменной, то оно будет не пустое. Просто потому, что это поле является признаком группировки. Так что, его значение тоже можно будет прочитать.

Ну, а Query - это создания анлогичных запросов другими средствами. Так что, к нему также применимы все эти рассуждения.

Вероятно, Query, построенный по Вашему отчету либо имел явно указанный список извлекаемых полей таблицы SalesTable (узел Fields), либо был задан список полей группировки (узел Sorting и свойство OrderMode = GroupBy), что также автоматически оставляет только поля группировки и поля с аггрегирующими функциями (sum(), maxOf(), minOf())

Как следствие, для решения проблемы надо будет либо добавить CreatedTime в список Field, либо в список Sorting. Либо и то, и другое.
Старый 20.04.2010, 12:54   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Покажите весь код от начала метода до строки
X++:
 While(qrRun.next())
а ещё лучше добавьте перед этой строкой вот такой код
X++:
info(qrRun.query().DataSourceNo(1).toString());
И результат запостите сюда.
Теги
query, select, field

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема некорректного вывода данных в EXCEL Dark Light DAX: Программирование 4 30.06.2009 14:43
Вписать динамический отчет в страницу (DAX 4.0) Qaz Qwerty DAX: Программирование 2 17.07.2008 05:46
Как получить указатель на отчёт когда пользователь выбрал Печать на принтер в просмотрщике, в форму SysPrintForm? rkorchagin DAX: Программирование 10 17.04.2008 11:59
PDF отчет. Проблема генерации. Dozer DAX: Программирование 2 29.06.2007 17:28
Возникла проблема с получением имени файла при создании своего канала вывода отчетов. oleg_kap DAX: Программирование 3 06.06.2006 14:12

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

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

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