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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2012, 09:21   #1  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Отображение аналитики InventDimParm
Всем добрый день. Ситуация такая: Создана новая форма, источником данных которой является временная таблица, содержащая поле InventDimId. На форму добавлена кнопка Отображение аналитики (как в стандартном функционале). Видимость и скрытие складских аналитик отрабатывает нормально. Проблема в том, что при изменении пользователем настроек по кнопке Отображение аналитики, необходимо запускать пересчет временной таблицы (идет группировка по соответствующим складским аналитикам), но как получить текущие значения InventDimParm я не знаю. Уверенна, что есть стандартные методы, но не знаю какие. При первом запуске формы все отрабатывает корректно inventDimParm = inventDimFormSetupGroup.parmDimParmVisibleGrid(). Однако, после нажатия кнопки этот метод содержит совершенно не те значения, которые были введены.
Старый 29.03.2012, 09:38   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Mila Посмотреть сообщение
Всем добрый день. Ситуация такая: Создана новая форма, источником данных которой является временная таблица, содержащая поле InventDimId. На форму добавлена кнопка Отображение аналитики (как в стандартном функционале). Видимость и скрытие складских аналитик отрабатывает нормально. Проблема в том, что при изменении пользователем настроек по кнопке Отображение аналитики, необходимо запускать пересчет временной таблицы (идет группировка по соответствующим складским аналитикам), но как получить текущие значения InventDimParm я не знаю. Уверенна, что есть стандартные методы, но не знаю какие. При первом запуске формы все отрабатывает корректно inventDimParm = inventDimFormSetupGroup.parmDimParmVisibleGrid(). Однако, после нажатия кнопки этот метод содержит совершенно не те значения, которые были введены.
а где и в какой момент Вы заполлняете переменную InventDimParm?

P.S. желательно с примером кода
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 29.03.2012, 10:03   #3  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
InventDimFormSetup заполняю по аналогии со стандартными формами в методе UpdateDesignGroup, который вызывается при инициализации формы. Вот его код:
X++:
void updateDesignGroup(InventDimFormDesignUpdate mode)
{
    InventTable inventTable;
    ;
    switch ( mode )
    {
        case InventDimFormDesignUpdate::Init :
            if ( !inventDimFormSetupGroup )
                inventDimFormSetupGroup = new InventDimCtrl_Frm( element );
            inventDimFormSetupGroup.parmSkipOnHandLookUp( true );
         // do continue
        case InventDimFormDesignUpdate::Active :
            inventTable = InventTable::find(ICLtmpProdRoutePlanGroup.itemId );
            inventDimFormSetupGroup.formActiveSetup( inventTable.dimGroupId );
            inventDimFormSetupGroup.formSetControls( true );
        break;
        case InventDimFormDesignUpdate::FieldChange :
            inventTable = InventTable::find(ICLtmpProdRoutePlanGroup.itemId );
            inventDimFormSetupGroup.formActiveSetup( inventTable.dimGroupId );
            inventDimGroup.clearNotSelectedDim( inventDimFormSetupGroup.parmDimParmEnabled() );
            inventDimFormSetupGroup.formSetControls( true );
        break;
      default : throw error(strfmt("@SYS54195",funcname()));
   }
}
А дальше в методе active источника данных формы пыталась проанализировать изменилось ли содержание inventDimParm, и после нажатия кнопки Отображение аналитики, в методе Clicked.
А заполнять InventDimParm я пыталась и так:
X++:
InventDimParm inventDimParm = inventDimFormSetupGroup.parmDimParmVisibleGrid();
и так:
X++:
InventDimParm inventDimParm = inventDimFormSetupGroup.parmDimParmVisible();
Старый 29.03.2012, 10:06   #4  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Пробовала даже отдельную кнопку сделать Обновить, и по ней запускать пересчет временной таблицы, но для этого все равно нужно получить текущие настройки InventDimParm
Старый 29.03.2012, 10:21   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Mila Посмотреть сообщение
А дальше в методе active источника данных формы пыталась проанализировать изменилось ли содержание inventDimParm, и после нажатия кнопки Отображение аналитики, в методе Clicked.
А заполнять InventDimParm я пыталась и так:
X++:
InventDimParm inventDimParm = inventDimFormSetupGroup.parmDimParmVisibleGrid();
и так:
X++:
InventDimParm inventDimParm = inventDimFormSetupGroup.parmDimParmVisible();
ага, я собственно не про инициализацию спрашивал, а про то как на кнопке...
правильно я понимаю, что вы заполняете inventDimParm до super() в методе?

если вам нужно получить inventDimParm, новый, который пользователь указал на форме, то нужно заполнять inventDimParm после super().
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 29.03.2012, 10:48   #6  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Я, наверное, неправильно объясняю. InventDimParm у меня заполняется в методе, который вызывается вообще по отдельной кнопке Обновить (можно назвать пересчитать, неважно). На эту кнопку я нажимаю после того, как нажала на кнопку Отображение аналитики (временно пока так сделала). Поэтому super() тут не при чем. Тут похоже проблема в том, что перед заполением InventDimParm нужно вызвать что-то типа
X++:
element.updateDesignGroup(InventDimFormDesignUpdate::FieldChange);
. Видимо нужно как-то обновлять значение inventDimFormSetupGroup. Только вот как
Старый 29.03.2012, 11:07   #7  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Все. Вопрос похоже решился. На самом деле метод inventDimFormSetup.parmDimParmVisibleGrid() правильно все возвращает.
Проблема была в том, что у меня на форме 2 закладки. Для каждой из них свой источник данных, своя аналитика. Я написала 2 метода updateDesign и updateDesignGroup, а кнопка Отображение аналитики только одна. После того как оставила только один метод - все заработало. На обеих вкладках все корректно отображается и InventDimParm получила тоже корректный. Спасибо за помощь
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
отображение складской аналитики hated8 DAX: Администрирование 6 16.04.2010 11:34
Сравнение в разрезе складской аналитики. longson DAX: Программирование 3 14.01.2008 13:45
Форма SalesQuickQuote andy239 DAX: Программирование 38 09.12.2007 18:02
Upgrade механизма (склад->отображение аналитики) miklenew DAX: База знаний и проекты 0 25.11.2007 16:35
Подскажите где настроивается отображение аналитики в печатной форме отгрузочной накла wb DAX: Функционал 7 15.07.2004 09:49

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

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

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