Цитата:
Сообщение от
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;
}