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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2014, 06:51   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Не срабатывает display-метод
Добрый день! У меня к вам странный вопрос...
Есть форма, на ней датасорс. На форме есть контролы, подвязанные к датасорсу. В таблице есть display-метод, который должен срабатывать при смене значения в некотором поле.

На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает.

НО (!) если контролы оформить не в грид, а отдельно - дисплей-метод не срабатывает автоматически! срабатывает только если щелкнуть в контрол с дисплей-методом.... в гриде, повторюсь, все работает...

Подскажите, в чем дело?

Последний раз редактировалось Vasiliusis; 23.04.2014 в 06:57.
Старый 23.04.2014, 08:12   #2  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Дисплейка не кэшируется?
Старый 23.04.2014, 08:14   #3  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от IvanS Посмотреть сообщение
Дисплейка не кэшируется?
нет, в гриде срабатывает же без всяких дополнительных манипуляций
Старый 23.04.2014, 08:57   #4  
axm2014 is offline
axm2014
Участник
 
7 / 10 (1) +
Регистрация: 04.04.2014
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
...
На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает.

[B]НО (!) если контролы оформить не в грид,..B] ...

Подскажите, в чем дело?
Может в том что при изменении элемента в гриде грид перерисовывается и соответственно перерисовываются и другие элементы на гриде, но указанное не верно в общем случае для элементов вне грида (им команда типа redraw не приходит).

Последний раз редактировалось axm2014; 23.04.2014 в 08:59.
Старый 23.04.2014, 12:53   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Добрый день! У меня к вам странный вопрос...
Есть форма, на ней датасорс. На форме есть контролы, подвязанные к датасорсу. В таблице есть display-метод, который должен срабатывать при смене значения в некотором поле.

На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает.

НО (!) если контролы оформить не в грид, а отдельно - дисплей-метод не срабатывает автоматически! срабатывает только если щелкнуть в контрол с дисплей-методом.... в гриде, повторюсь, все работает...

Подскажите, в чем дело?
У грида правильный датасорс указан (то на котором дисплей метод написан)?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 23.04.2014, 13:24   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Попробуйте закэшировать метод. Тем более, если он в таблице.
X++:
public void init()
{
    super();

    this.cacheAddMethod(tableMethodStr(Table, displayMethod));
}
И не забудьте проверить датасорс на контролах с дисплейными методами.
__________________
// no comments

Последний раз редактировалось dech; 23.04.2014 в 13:27.
Старый 23.04.2014, 14:00   #7  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от lev Посмотреть сообщение
У грида правильный датасорс указан (то на котором дисплей метод написан)?
да, конечно
Старый 23.04.2014, 15:03   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
срабатывает только если щелкнуть в контрол с дисплей-методом....
А может быть дело не в том что вы активируете контрол, а в том что вы выходите при этом с грида. Потеря фокуса гридом инициирует сохранение введенных данных и именно тогда метод пересчитывается.

Если это так, то исправить ситуацию можно если после изменения значения в поле грида (метод modified соответствующего узла field на датасорсе) принудительно вызвать метод write датасорса.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не обновляется display метод на форме kit22 DAX: Программирование 7 15.08.2012 11:04
Display метод временной таблицы выполняется в компании DAT S.Kuskov DAX: Программирование 4 15.04.2011 20:11
display-метод Pavel Pustovalov DAX: Программирование 9 21.03.2006 10:03
Можно ли в display методе узнать для какого FormControl'а этот метод вызван? Dudnik Anton DAX: Программирование 3 01.02.2006 12:22
display метод с параметром Андре DAX: Программирование 5 11.01.2006 19:04

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

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

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