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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.07.2014, 10:04   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Отображение значения аналитики DimensionDefault в отладчике
AX2012
есть вот такой код
X++:
    LedgerJournalTrans  lgt;
    ;
    select firstOnly lgt where lgt.DefaultDimension;    
    info(strFmt("%1, %2", lgt.LedgerDimension, lgt.DefaultDimension));
если встать в отладчике на последнюю строку и посмотреть значения переменных для LedgerDimension будет показывать что-то вроде
VALUE: 5637146433 { DisplayValue: 8004}
а для lgt.DefaultDimension
5637144870 {[FK REPLACEMENT FAILED]}

собственно вопрос как можно повлиять на это(перекрыть какой-нибудь метод может), чтобы вместо фразы FK REPLACEMENT FAILED показывать что-нибудь осмысленное
Старый 14.07.2014, 10:41   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Может это вам поможет
Как лучше отлаживать код с временными таблицами, recordset'ами, set'ами, map'ами и прочими сложными структурами?

Правда на табличке я не пробовал toString() перекрывать. Но можно сделать класс просмотрщик, как по ссылке описано.
Старый 14.07.2014, 11:10   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
ну перекрытие на DimensionAttributeValueSet метода toString() не помогает
надо перекрывать что то ответственное за вывод FK REPLACEMENT FAILED, не понятно только что
Старый 14.07.2014, 11:14   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
я не это вам предлагал.
Я бы сделал вспомогательный метод, который по связям таблички для заданного поля искал бы связанную запись и возвращал бы common.Titlefiled1, common.Titlefiled2
А метод можно дергать из класса обертки из метода toString() тогда получится как бы плагин к отладчику для просмотра значений полей произвольной таблички. Но это разработка не на 5 минут.
Если нужно быстро слепить - то можно то же самое для конкретной таблички. Самое просто сделать еще одно поле, несохраняемое в базе, которое заполнять на postLoad() таблички. Конечно замедлит производительность, но после отладки это можно и отключить.
Старый 14.07.2014, 11:23   #5  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
не очень понял идеи.
если для просмотра значения при отладке менять текущий отлаживаемый код понятно что можно написать что угодно и выводить это как надо, вопрос собственно как это сделать не меняя выполняемого кода
Старый 14.07.2014, 11:35   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от trud Посмотреть сообщение
не очень понял идеи.
если для просмотра значения при отладке менять текущий отлаживаемый код понятно что можно написать что угодно и выводить это как надо, вопрос собственно как это сделать не меняя выполняемого кода
Можно модифицировать пример из приведенной выше ссылки.
Класс просмотрщик "поселить" в application и сделать в нем два параметра - имя переменной и имя поля. В классе просмотрщике на toString вытаскивать значения (можно например использовать runbuf() ) и отображать нужные значения. Проще наверно никак.

Возможно для RefRecid полей есть аналог метода toString который и возвращает строку для отладчика, но я про такой ничего не слышал.
Старый 14.07.2014, 12:17   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Для DefaultDimension идет ссылка на таблицу DimensionAttributeValueSet, для которой нет ссылок на другие таблицы и не заполнена автогруппа AutoIdentification

К сожалению, отладчик не выводит значения из дисплейного метода в этом случае.
Но можно воспользоваться, как выше советуют, методом postLoad() и несохраняемым в БД полем, заполняя его только для случая отладки (и добавить его в группу AutoIdentification)
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Logger (1).
Теги
dimensiondefault

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX 2012 Как перекодировать значения аналитики Центра затрат? herbst.olga DAX: Функционал 6 17.04.2013 18:06
Отображение аналитики InventDimParm Mila DAX: Программирование 6 29.03.2012 11:07
отображение складской аналитики hated8 DAX: Администрирование 6 16.04.2010 11:34
Upgrade механизма (склад->отображение аналитики) miklenew DAX: База знаний и проекты 0 25.11.2007 16:35
Отображение места выполнения кода в отладчике kashperuk DAX: Программирование 5 16.08.2006 12:17

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

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

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