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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.11.2013, 14:12   #1  
byte is offline
byte
Участник
 
36 / 31 (2) +++
Регистрация: 21.08.2007
Непонятный Id у поля
Добрый день!

Выполняю приведенный ниже код, у таблицы InventDim fieldId поля InventLocationId принимает некое странное значение, не соответствующее имеющемуся в таблице.
Если же использовать закомментированный код, все работает. Хотелось бы понять причину.
X++:
for(i=1; i<=qbdsInventDim.rangeCount(); i++)
        {
            qbr = qbdsInventDim.range(i);
            if( qbr.field() == fieldnum(InventDim, InventLocationId)    &&
                //fieldid2name(qbr.table(), qbr.field())   == fieldid2name(tablenum(InventDim), fieldnum(InventDim, InventLocationId))    &&
                qbr.value() )
            {
                queryRunSum.query().dataSourceTable(tablenum(InventSumDateFinancialDim_RU)).addRange(fieldnum(InventSumDateFinancialDim_RU, InventLocationId)).value(qbr.value());
            }
        }
Старый 06.11.2013, 14:24   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Возможно у вас расширенный ид используется.
см.
fieldExt2Id
fieldExt2Idx
fieldId2Ext
класса Global
За это сообщение автора поблагодарили: byte (1).
Старый 06.11.2013, 14:44   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А у вас qbr.table() равен tablenum(InventDim)?
Старый 06.11.2013, 15:06   #4  
byte is offline
byte
Участник
 
36 / 31 (2) +++
Регистрация: 21.08.2007
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А у вас qbr.table() равен tablenum(InventDim)?
равен
Старый 06.11.2013, 15:12   #5  
byte is offline
byte
Участник
 
36 / 31 (2) +++
Регистрация: 21.08.2007
Цитата:
Сообщение от Logger Посмотреть сообщение
Возможно у вас расширенный ид используется.
см.
fieldExt2Id
fieldExt2Idx
fieldId2Ext
класса Global
Действительно, fieldExt2Id(qbr.field()) дает нужный результат. А почему он используется?
Старый 06.11.2013, 15:12   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
По-моему qbr.field() возвращает расширенный id
Попробуйте оперировать fieldExt2Id( qbr.field() ) - его уже можно сравнивать с результатом fieldNum(...)
Старый 06.11.2013, 15:14   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
опоздал
В диалогах используется расширенный идентификатора.
видимо чтобы отделять индексные поля одни от других.
т.е. Dimension[1] и Dimension[2] будут иметь разные расширенные ид
Старый 06.11.2013, 15:16   #8  
byte is offline
byte
Участник
 
36 / 31 (2) +++
Регистрация: 21.08.2007
Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Длина поля ax_f DAX: Программирование 5 24.09.2004 12:17
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Недопустимая комбинация поля/поля ссылки Berty Wooster DAX: Программирование 2 29.05.2003 16:31

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

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

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