27.12.2010, 13:05 | #1 |
Участник
|
Сделать неактивным поле ввода в 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 |
Участник
|
1) Перекрываете метод dialogPostRun() вашего класса:
X++: public void dialogPostRun(DialogRunbase _dialog) { super(_dialog); dialog.dialogForm().formRun().controlMethodOverload(true); dialog.dialogForm().formRun().controlMethodOverloadObject(this); } X++: public void fld1_1_Modified() { dfPeriod.enabled(false) }
__________________
С уважением, Александр. |
|
|
За это сообщение автора поблагодарили: sobik (1). |
27.12.2010, 13:20 | #3 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Большое спасибо, заработало. Но есть несколько непоняток:
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 |
Участник
|
Посмотрите вот этот проект. Там при добавлении поля в диалог можно задавать имя поля. Тогда не придется делать названия методов такими кривыми. Ну а вообще, если есть возможность, то сделайте диалог на основе формы.
|
|
27.12.2010, 14:19 | #6 |
Участник
|
Дело в том, что в моем случае, dialog был объявлен в ClassDeclaration.
Цитата:
Имена контролам диалога присваиваются в порядке их появления в коде?
"Eсли включен showQueryValues(), порядковый номер поля на форме считается начиная с полей запроса" А вообще лучше сделать, как советует _scorp_.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 27.12.2010 в 14:23. |
|