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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.06.2012, 22:53   #1  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Отображение аналитик в гриде складских журналов. Баг?
В настройках модуля управления запасами есть настройки для отображения складских аналитик по умолчанию в гриде. В дальнейшем пользователь может изменить это поведение по кнопке Запасы -> Отображение аналитики.

Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 387
Размер:	36.6 Кб
ID:	7786

Выставляю для журнала Прибыли / Убытки только аналитику Цвет. Очищаю таблицу SysLastValue по своему пользователю (чтобы не подхватилась настройка из InventDimCtrl_Frm_Mov), запускаю job со следующим кодом:

X++:
InventDimGlobal::flushAll();
для того, чтобы сбросить кэш по таблице InventDimSetupGrid.

Открываю форму УЗ / Журналы / Прибыли-Убытки / Строки и вижу кучу складсских аналитик в гриде:

Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 378
Размер:	49.0 Кб
ID:	7787

Проблема тянется из метода InventJournalFormTrans_Movement -> updateDesign()
Если посмотреть стек вызова это метода:

Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 326
Размер:	60.7 Кб
ID:	7792

то видно, что метод вызывается на ините формы, когда курсор строки еще не определен. Поэтому создается InventMov_Jour_Movement, а не InventMov_Jour_LossProfit

Нажмите на изображение для увеличения
Название: 4.jpg
Просмотров: 300
Размер:	82.9 Кб
ID:	7790

Дальше, в методе InventDimCtrl_Frm_Mov -> mustShowGridField() вызывается метод InventDimSetupGrid::movement2FieldId(movement); для того, чтобы понять какое поле из таблицы InventDimSetupGrid брать для настройки отображения аналитик в гриде. А так как Movement создался с типом проводка, то и настройка возьмется для этого типа журнала:

Нажмите на изображение для увеличения
Название: 5.jpg
Просмотров: 391
Размер:	136.4 Кб
ID:	7791

Я придумал следующее решение. В начале метода InventJournalFormTrans_Movement -> updateDesign() делаем следующие исправления:

X++:
//scorp -->
    //InventMovement _movement = InventMovement::construct(inventJournalTrans);
    InventMovement _movement;
    ;
    if (!inventJournalTrans.RecId)
    {
        inventJournalTrans.JournalType = new SysDictEnum(enumnum(InventJournalType)).index2Value(journalTableData.journalTable().JournalType);
    }
    _movement = InventMovement::construct(inventJournalTrans);
    //scorp <--
Исходя из того, что такое поведение воспроизводится с AX версии 3.0 у меня появились мысли о том, что это не баг, а какая-то фича, о которой мне не известно. Или все-таки баг?
За это сообщение автора поблагодарили: mazzy (2), kashperuk (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Конфигуратор как альтернатива добавлению новых складских аналитик vey DAX: Функционал 20 30.04.2010 09:28
Сторно складских журналов в DAX2009 Starling DAX: Функционал 4 12.06.2009 15:20
Сложный фильтр складских журналов Perc DAX: Программирование 13 31.08.2005 12:42
Очистка складских журналов dyatlowsky DAX: Функционал 0 26.03.2004 17:55
фильтр по строкам складских журналов не работает... dyatlowsky DAX: Функционал 5 12.03.2004 20:25

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:04.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.