Показать сообщение отдельно
Старый 15.10.2009, 17:05   #5  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от lev Посмотреть сообщение
вот, нашел в своем загашнике знаний
Как динамически изменять активность поля диалога:

Если перекрыть в вашем классе метод void dialogSelectCtrl() и произвести вызов метода dialog.allowUpdateOnSelectCtrl(true);
в перекрытом методе dialog(), то ваш перекрытый метод dialogSelectCtrl() будет вызываться каждый раз при получении фокуса
элементом ввода.
...
\Classes\RAssetReport
добавил методы модификации на поля:
X++:
void dateField_modified()
{
    ;
    info('dateField_modified');
    breakpoint;
}

void numberField_modified()
{
    ;
    info('numberField_modified');
    breakpoint;
}
переписал \Classes\RAssetReport\prompt
X++:
protected boolean prompt()
{
    Dialog      dlg;
    ;

    dlg = this.dialog();

//    dlg.run();
    dlg.doRun();
    this.dialogPostRun(dlg); 
    dlg.wait();

    if (dlg.closedOk())
        return this.getFromDialog();

    return false;
}

public void dialogPostRun(Dialog _dialog)
{
    ;
    _dialog.dialogForm().formRun().controlMethodOverload(true);
    _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
при изменений полей даты документа или номера документа "Акт приемки оборудования (№ ОС-14)"
РЕАКЦИИ НИ КАКОЙ Не видит методы _modified

метод dialogSelectCtrl() бесполезен, так как он отрабатывает только один раз при открытии диалогового окна.
При изменении значения в поле, метод dialogSelectCtrl() даже не реагирует.

Как заставить видить _modified ?

Надо учесть что Classes\RAssetReport ни от кого не наследован.

Последний раз редактировалось Poleax; 15.10.2009 в 17:11.