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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.08.2013, 20:04   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Цитата:
Сообщение от SRF Посмотреть сообщение
А кеширование дисплей методов не рассматривается ?
рассматривается,конечно, если поясните, как оно тут поможет. то есть, просто опишите что кэшируем и где
Я поясню: если кэшировать все три метода. то все рассчеты все равно 3 раза для каждой записи будут произведены, а не один, как описано в постановке задачи. Но, может быть, я не поняла вашу мысль ..

Последний раз редактировалось IKA; 22.08.2013 в 20:06.
Старый 22.08.2013, 20:09   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Ну как правило кеширование методов на форме происходит как уже сказал raz при помощи Map ну или как них нибудь других объектов.

Суть что делаем : делаем общий метод на форме например, в качестве параметра курсор, мап - скажем ключ recid, ну а значение в вашем случае контейнер из трех полей. Метод работает по принципу - есть в мапе данные берем из него, нет вызываем методОбщий, записываем в мап и эти же данные берем в качестве расчета.

Дальше в каждом методе priceX - вызываем данный метод, в результате будет возвращаться контейнер, ну и в методе уже определяете нужный элемент контейнера. Соответственно расчет будет выполнен один раз, каким нибудь из методов, остальные данные уже возьмутся из мапа.
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 22.08.2013 в 20:12.
За это сообщение автора поблагодарили: IKA (1).
Старый 22.08.2013, 20:16   #3  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
MAP- точно, отличная мысль! Спасибо!
Старый 22.08.2013, 20:41   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от IKA Посмотреть сообщение
MAP- точно, отличная мысль! Спасибо!
мап хорош только если данные не меняются пока пользователь просматривает форму туда-сюда.
вы это... поосторожнее с кэшированием. формы могут быть открытыми на экране пользователя часами.

вычислять один раз вместо трех на каждый показ записи - вполне разумно.
вычислять один раз вместо всех показов записи - уже как-то безрассудно.
За это сообщение автора поблагодарили: Pustik (2).
Старый 22.08.2013, 21:24   #5  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
2 Mazzy, а вы что предлагаете-то?
Старый 22.08.2013, 21:26   #6  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
2SRF Да, извините, если вы не про cacheAddMethod, а про Map, то, конечно.
Я по умолчанию под кэшированием, встроенные механизмы подразумеваю.
Спасибо
Старый 22.08.2013, 22:19   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от IKA Посмотреть сообщение
2 Mazzy, а вы что предлагаете-то?
а уже предложено sukhanchik'ом:
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Для примера см классы InventOnHand, PriceDisc и т.д.
Суть: Инициализируется класс, у которого имеется несколько (в Вашем случае 3) методов, возвращающих переменные Цена1, Цена2 и Цена3. Дополнительно в классе объявляется переменная-флажок isCalculated. При расчете, который выполняется в методе МетодОбщий рассчитываются переменные Цена1, Цена2, Цена3, а также взводится флажок isCalculated. В методах, которые возвращают соответствующие переменные производится проверка - а не взведен ли флажок? Если флажок не взведен - то вызывается МетодОбщий. Если флажок взведен - то ничего не вызывается - просто возвращается соответствующая переменная.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод дисплей методов в lookup форме user_ax DAX: Программирование 14 24.07.2013 13:43
Переопределение стандартных методов у динамически создаваемых контролов - вопрос с предисторией (многабукаф) TasmanianDevil DAX: Программирование 13 02.08.2012 07:39
Win2008 и вызов методов COM-объектов AndyD DAX: Программирование 13 06.02.2012 15:22
Некорректное поведение дисплей методов в EP Ax 4 zelibobis DAX: Программирование 3 31.03.2009 14:21
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47

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

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

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