Показать сообщение отдельно
Старый 14.07.2015, 18:14   #12  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от syl Посмотреть сообщение
X++:
Object      control = dialog.formRun().controlCallingMethod();
boolean     ret = control.modified();
dialog не определен в методе, посему данный код подсвечивается ошибкой
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;
}
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...