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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.12.2010, 13:05   #1  
sobik is offline
sobik
Участник
Аватар для sobik
 
28 / 10 (1) +
Регистрация: 30.08.2010
Сделать неактивным поле ввода в dialog'е.
Здравствуйте.
Я создаю диалог для ввода параметров следующим образом:
public Object dialog()
{
DialogRunbase dialog = super();
;
dialog.addGroup("Период отчета");
dfPayYear = dialog.addFieldValue(typeid(RPayYearPeriod), m_payYear,);
dfPeriod = dialog.addFieldValue(typeid(RPayPeriod), m_period,"Месяц отчета");
return dialog;
}

Вопрос следующий: как сделать поле dfPeriod неактивным, если пользователь изменил поле dfPayYear.
Старый 27.12.2010, 13:18   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
1) Перекрываете метод dialogPostRun() вашего класса:
X++:
public void dialogPostRun(DialogRunbase _dialog)
{
    super(_dialog);

    dialog.dialogForm().formRun().controlMethodOverload(true);
    dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
2)Создаете метод fld1_1_Modified(), где fld1_1 - имя первого контрола диалога, присвоенное ему автоматически:
X++:
public void fld1_1_Modified()
{
    dfPeriod.enabled(false)
}
__________________
С уважением, Александр.
За это сообщение автора поблагодарили: sobik (1).
Старый 27.12.2010, 13:20   #3  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от sobik Посмотреть сообщение
Здравствуйте.
Я создаю диалог для ввода параметров следующим образом:
public Object dialog()
{
DialogRunbase dialog = super();
;
dialog.addGroup("Период отчета");
dfPayYear = dialog.addFieldValue(typeid(RPayYearPeriod), m_payYear,);
dfPeriod = dialog.addFieldValue(typeid(RPayPeriod), m_period,"Месяц отчета");
return dialog;
}

Вопрос следующий: как сделать поле dfPeriod неактивным, если пользователь изменил поле dfPayYear.
Вот тема про события в диалоге.
Modified поля на форме-наследнике RunBase
За это сообщение автора поблагодарили: sobik (1).
Старый 27.12.2010, 13:27   #4  
sobik is offline
sobik
Участник
Аватар для sobik
 
28 / 10 (1) +
Регистрация: 30.08.2010
Большое спасибо, заработало. Но есть несколько непоняток:
1. Ваш код не компилировался, зато откомпилировался следующий:
X++:
public void dialogPostRun(DialogRunbase _dialog)
{
    super(_dialog);

    _dialog.dialogForm().formRun().controlMethodOverload(true);
    _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
Названия переменный вроде совпадают,но... Может, я что-то упустил?

2. Имена контролам диалога присваиваются в порядке их появления в коде?
TypeId для dfPayYear - dfPayYear(появлялось лишь число, что обозначает год. Сейчас же появляется и день, и месяц. Чем это обусловлено? TypeId не поменялся.

Последний раз редактировалось sobik; 27.12.2010 в 13:39.
Старый 27.12.2010, 13:42   #5  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Посмотрите вот этот проект. Там при добавлении поля в диалог можно задавать имя поля. Тогда не придется делать названия методов такими кривыми. Ну а вообще, если есть возможность, то сделайте диалог на основе формы.
Старый 27.12.2010, 14:19   #6  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Цитата:
Сообщение от sobik Посмотреть сообщение
Названия переменный вроде совпадают,но... Может, я что-то упустил?
Дело в том, что в моем случае, dialog был объявлен в ClassDeclaration.

Цитата:
Имена контролам диалога присваиваются в порядке их появления в коде?
Да, как говорится в сообщении из ссылки, оставленной пользователем Bega:
"Eсли включен showQueryValues(), порядковый номер поля на форме считается начиная с полей запроса"

А вообще лучше сделать, как советует _scorp_.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 27.12.2010 в 14:23.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: 3 Dialog extensions Blog bot DAX Blogs 4 28.09.2007 18:56
DynamicsTech: How to modify the behavior of dialog boxes to enable forms to appear in full-screen mode in Microsoft Dynamics AX Blog bot DAX Blogs 0 13.04.2007 12:10
Fred Shen: Dialog screen events Blog bot DAX Blogs 0 28.10.2006 16:40
вычисляемое поле ZhanR DAX: Программирование 8 28.09.2006 10:25
Удобное поле ввода даты renat DAX: Программирование 11 13.03.2003 13:03

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

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

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