|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() Вы ВНИМАТЕЛЬНО посмотрите на то, что написал Вам Craz в самом первом ответе. И сравните со своим кодом. Не замечаете отличий
![]() ![]() Наводящий вопрос: Как Вы думаете, где происходит отработка штатного метода modify на объекте формы? Ну, грубо говоря, где выполняется super() метода модификации? X++: Object control = dialog.formRun().controlCallingMethod(); boolean ret = control.modified(); |
|
![]() |
#2 |
Участник
|
Цитата:
X++: class DialogHH extends RunBase { DialogField dlgFactureDate; DialogField dlgFactuDocId; DialogField dlgRegInERNN; DialogButton dialogButton; FactureDate_RU factureDate; FactuDocId factureDocId; RegInERNN regInERNN; // Ссылка на класс диалога должна быть определена в ClassDeclaration // для перекрытия методов modified объектов диалога DialogRunbase dialog; #define.CurrentVersion(1) #localmacro.CurrentList factureDate, factureDocId, regInERNN #endmacro } public Object dialog(DialogRunbase _dialog, boolean _forceOnClient) { // DialogRunbase dialog; // определен в ClassDeclaration ; dialog = super(_dialog) dlgFactureDate = dialog.addFieldValue(typeid(FactureDate_RU), factureDate); dialog.customFieldName_RU("dlgFactuDocId"); dlgFactuDocId = dialog.addFieldValue(typeid(FactuDocId), factureDocId); dlgRegInERNN = dialog.addFieldValue(typeid(RegInERNN),regInERNN); dlgRegInERNN.allowEdit(false); return dialog; } public void dialogPostRun(DialogRunbase _dialog) { ; Super(_dialog); _dialog.formRun().controlMethodOverload(true); _dialog.formRun().controlMethodOverloadObject(this); } protected boolean dlgFactuDocId_modified() { FormControl control = dialog.formRun().controlCallingMethod(); boolean ret = control.modified(); ; if (ret) { if ((dlgFactuDocId.value() == 'ПНЕ') || (dlgFactuDocId.value() == 'РКЕ')) { dlgRegInERNN.value(true); } else { dlgRegInERNN.value(false); } } return true; } public boolean getFromDialog() { ; factureDate = dlgFactureDate.value(); factureDocId = dlgFactuDocId.value(); regInERNN = dlgRegInERNN.value(); return true; } public container pack() { return [#CurrentVersion,#CurrentList]; } public boolean unpack(container packedClass) { Version version = runbase::getVersion(packedClass); switch (version) { case #CurrentVersion: [version,#CurrentList] = packedClass; break; default: return false; } return true; }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|