Структура класса RunBase
Описание методов
1. CanGoBatch()
Возвращает True если возможна пакетная обработка (т.е. можно указать когда запускать обработку и как часто ее запускать в автоматическом режиме)
Возвращает False если пакетная обработка не возможна
2. CheckCloseDialog()
Вызывается при закрытии диалога (CloseOk)
3. cleanupDialog()
Вызывается при закрытии диалога (CloseCancel
4. Dialog()
Вызывается из метода Prompt() и возвращает класс запуска формы dialog, ormRun
5. DalogTask()
Вызывается из метода task() в диалоге
6. GetFromDialog()
Вызывается из метода CheckFromDialog()
7. GetLast()
Метод необходисо вызывать в классе наследнеке для получения сохраненных параметров при последнем вызаве этого класса (работает метод pack() и unpack())
8. InitParmDefault()
Вызывается если неудалось найти сохраненные параметры методом GetLast()
9. LastFalueDataAreaId()
В какой компании идет работа
10. LastValueUserId()
Пользователь.
11. pack()
Через этот метод сохраняются параметры обработки
return [#CurrentVersion, #CurrentList];
#CurrentVersion – макрос (local) версиясохранненных параметров
#CurrentList – макрос (local) сохраняемые параметры
12. parmProgress()
Метод Set/Get RunBaseProgress (прогресс)
13. progress*()
методы для работы с прогрессом
14. Promt()
Вызывается из класса наследника этот метод открываент диалог и если нажата кнопка OK и метод Validate() вернул True тогда метод Prompt() вернет значениеTrue
If (this.Promt())
This.Run()
15. RunBase()
Return this;
16. SaveLast()
Вызывается из метода Prompt() если в диалоге нажта кнопка OK
Метод сохраняет параметры (вызов метод pack())
17. unpack()
Распаковка параметров
X++:
int version = runbase::getVersion(packedClass);
switch (version)
{
case #CurrentVersion:
[version,#CurrentList] = packedClass;
return true;
default :
return false;
}
return false;
18. Validate()
Вызывается при закрытии диалога (CloseOk)
19. static GetDescription(ClassId)
Возвращет описание класса наследника
X++:
static str Description() // лучше чтобы этот метод был в наследние
{
return < >
}
X++:
vois run() // пример метода Run()
{
if (! This.Validate()) // только если вызывается форма, а не диалог
throw Error('');
try
{
progress.progressinit()
ttsbegin;
While
{
progress.inccount();
progress.settext();
}
ttscommit;
}
catch (exception::DeadLock)
{
retry;
}
}