|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Poleax
![]() ![]() добавил методы модификации на поля: X++: void dateField_modified() { ; info('dateField_modified'); breakpoint; } void numberField_modified() { ; info('numberField_modified'); breakpoint; } А вы уверены, что созданные контролы на диалоге имеют имена "dateField" и "numberField" ? В стандарте они создаются как "Fld1_1" и "Fld2_1". Соответственно, методы должны называться fld1_1_modified() и fld2_1_modified(). |
|
![]() |
#2 |
Модератор
|
Цитата:
X++: DialogField dateField; DialogField numberField; |
|
|
За это сообщение автора поблагодарили: Lemming (-2). |
![]() |
#3 |
Участник
|
Цитата:
dateField и numberField - названия переменных, а названия контролов совсем другие. Посмотрите также методы dialog.addField() и dialogField.fieldName() - все станет ясно... |
|
|
За это сообщение автора поблагодарили: Lemming (4), Poleax (2). |
![]() |
#4 |
Модератор
|
Цитата:
![]() ![]() |
|
![]() |
#5 |
Moderator
|
Цитата:
Цитата:
Сообщение от Gustav
![]() Можно перейти от fld5_1 к "нормальному" названию поля типа "Kontragent", создав переменную контрола соответствующего типа, и тогда метод приобретет более осмысленное название типа Kontragent_modified(). Соответственно, никаких проблем с последующим добавлением полей в серединку не возникнет. Делал такое в Ax 3.0 sp4.
X++: static void Job220(Args _args) { Dialog dialog = new Dialog('Наш диалог'); FormStringControl fscOKOFCode; FormIntControl ficLifeTime; DialogField fieldOKOFCode; DialogField fieldLifeTime; ; fieldOKOFCode = dialog.addField(Types::String,'ОКОФ'); fieldLifeTime = dialog.addField(Types::Integer, 'Срок амортизации'); fscOKOFCode = fieldOKOFCode.fieldControl(); ficLifeTime = fieldLifeTime.fieldControl(); fscOKOFCode.name('OKOFCode'); ficLifeTime.name('LifeTime'); dialog.doInit(); dialog.formRun().controlMethodOverload( true ); dialog.formRun().controlMethodOverloadObject( new KKu_TestForPoleax( dialog )); // KKu_TestForPoleax - класс, содержащий метод OKOFCode_modified dialog.run(); // опытным путём было установлено, что здесь еще раз необходима инициализация переменных, // чтобы дальше ими свободно оперировать fscOKOFCode = dialog.formRun().design().controlName('OKOFCode'); ficLifeTime = dialog.formRun().design().controlName('LifeTime'); if(dialog.closedOk()) { box::info(strFmt('ОКОФ: %1, Срок: %2', fscOKOFCode.text(), ficLifeTime.value())); } } X++: class KKu_TestForPoleax { Dialog dialog; } void new(Dialog _dialog) { ; dialog = _dialog; } public boolean OKOFCode_modified() { boolean ret; FormStringControl me = dialog.formRun().controlCallingMethod(); ; ret = me.modified(); // как super() box::info('Привет, Poleax! Вон оно, оказывается, как надо было!'); return ret; } Последний раз редактировалось Gustav; 15.10.2009 в 18:43. |
|
|
За это сообщение автора поблагодарили: Poleax (4). |
![]() |
#6 |
Moderator
|
Всё! ПолучИте законченный пример - джоб и класс к нему (см. выше).
|
|
Теги |
dialog, modified, runbase |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|