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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.04.2008, 11:01   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Обработка modified в Dialog
Привет всем.
Вопрос по перекрытию методов для динамических контролов Dialog.
Все, работает отлично, но вот что интересно:
X++:
public boolean dfCalcPeriod_modified()
{
    Boolean ret;
    FormStringControl  control = dialog.formRunClient().controlCallingMethod();
    ;

    ret = control.modified();

    dfCalcPeriod.value(control.text());

    // здесь некий функционал, который должен отрабатывать на Modified

    return ret;
}
Если вот этого не делать dfCalcPeriod.value(control.text()), то значение Value в dfCalcPeriod, так и остается старым, то есть не изменяется. Я так понимаю, dfCalcPeriod это объект на сервере, а control - объект на клиентской форме. Поэтому, несмотря на modified клиентского контрола, обновление на сервере не проиходит.

При этом можно сделать
X++:
    dialog.updateClient(dialog.parmDialogOnClient());
чтобы обновить изменения на клиентской форме, при каких-то модификациях на сервере.

Каким образом провернуть обратную операцию целиком, то есть не выставляя отдельные значения для контролов.
Старый 30.04.2008, 12:28   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
При этом можно сделать
X++:
 dialog.updateClient(dialog.parmDialogOnClient());
чтобы обновить изменения на клиентской форме, при каких-то модификациях на сервере. Каким образом провернуть обратную операцию целиком, то есть не выставляя отдельные значения для контролов.
Как ни удивительно, обратного эффекта можно достичь вызовом
X++:
dialog.updateServer();
Правда, странно, что такие действия требуется выполнять при модификации значений полей диалога. У вас исходный класс, вызывающий диалог (предположительно потомок RunBase), разве сам не переключается между клиентом и сервером на время вывода диалога и получения необходимых данных от пользователя?..
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 30.04.2008, 12:35   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Его сразу и пробовал - никакого толка.

Все, вкурил. Так надо:
X++:
dialog.parmDialogOnClient().updateServer();
Спасибо за подсказку

Последний раз редактировалось Eldar9x; 30.04.2008 в 12:41.
Старый 05.05.2008, 17:54   #4  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Хм... В тройке все работает без этих update-ов (пример в аттаче).
Вы про четверку говорите?
Вложения
Тип файла: xpo TMP_ServerDialogExample.xpo (3.7 Кб, 495 просмотров)
Старый 07.05.2008, 13:28   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Вы про четверку говорите?
Да.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обработка jumpRef в Dialog Eldar9x DAX: Программирование 13 12.05.2008 13:24
Kashperuk Ivan: 3 Dialog extensions Blog bot DAX Blogs 4 28.09.2007 18:56
Fred Shen: Dialog screen events Blog bot DAX Blogs 0 28.10.2006 16:40
modified два раза два раза MironovI DAX: Программирование 5 14.07.2006 16:29
Mandatory field в Dialog axaLearner DAX: Программирование 4 02.11.2004 09:50

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

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

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