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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2019, 14:45   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
648 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Если кому интересно, то проблема в поле DataAreaId.
Проблема не только в этом. Есть некоторые отключенные поля, которые не существуют на уровне SQL Server'а. Список ORDER BY формируется последовательно, чем и порождает ошибку. Например в индексе 10 полей, допустим 2-е, 3-е и 5-е по счету поля отключены, в списке полей их будет всего 7, однако в ORDER BY будет нумерация 1, 4, 6, 7, 8, 9, 10 DESC. А откуда у нас 8, 9 и 10, когда в SELECT'е их всего 7? (я игнорирую COUNT(*) для ясности).
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А здесь нужны 3 списка: Select, Group By, Order By.
Достаточно двух списков: названия полей и их номера для сортировки.
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Т.е. модификация сильно избыточная. Надо всего лишь добавить if (dataPrCompany) перед/после формированием очередного списка полей с явным добавлением поля DataAreaId в список полей
Как следует из вышесказанного, "всего-лишь добавить if" не получится.
Да и если явно добавить DataAreaId, вы уже не избавитесь от группировки по этому полю для общих таблиц, где DataAreaId нет в принципе.
Плюс я заменил алгоритм на использование коллекции Map. Так будет немного эстетичнее, да и удобнее читать код.
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Вот здесь был разбор этой функции и зачем нужен параметр fieldNameGenerationMode в методе dictTable.fieldname()

Кнопка "Add-ins\Дубликаты" на табличных индексах в АОТ
Не спорю, но здесь так не докопались до истины. Проблема осталась висеть мертвым грузом еще 10 лет. Возможно из-за того, что эта функция очень редко используется.
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
PS: Но, вообще-то, есть еще поле Partition. Теоретически, его тоже надо добавлять в формируемый запрос
Да, можно и с Partition поработать... теоретически, но практически это почти нигде не используется.
__________________
// no comments
Теги
duplicates, index, sysdictindex, баг, индекс, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Баг или фича - неожиданное поведение метода xRecord.data() Pandasama DAX: Программирование 3 21.03.2016 13:01
AX 2012 Пересчет единиц измерения - баг или фича? Kabardian DAX: Функционал 3 25.02.2014 11:00
Баг или не баг? Murlin DAX: Программирование 53 14.09.2013 18:52
Баг при печати налогового кода petr DAX: Программирование 0 25.03.2009 16:33
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание levsha DAX: Программирование 5 07.12.2004 12:26
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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