Цитата:
Сообщение от
IKA
В AOT-е только 3 стандартных отчета, использующих progress bar(ax2009). Почему в отчетах не делают progress bar-ов? Предполагается, что вся логика выполняется в классе, где собственно и должен быть градусник, а отчет сам по себе быстро выводит данные, поэтому progress тут не нужен?(хотя, это далеко не всегда так)
Мне кажется тут все дело в архитектуре: чтобы создать программную обработку для Report нужно создать класс-наследник от RunBaseReport, который наследник RunBaseBatch'а:
X++:
public abstract class RunBaseReport extends RunBaseBatch
{
SysReportRun reportRun;
SysQueryRun queryRun;
Args callerArgs;
...
}
RunBaseBatch наследник от RunBase:
X++:
public abstract class RunBaseBatch extends RunBase implements Batchable
а у RunBase в classDeclaration уже есть progress:
X++:
public abstract class Runbase extends Object implements SysSaveable, SysRunable
{
boolean getLastCalled;
boolean inGetSaveLast;
boolean inCheckClose;
boolean inPrompt;
boolean isSwappedFromServer;
boolean dialogCanceled;
boolean inPromptUnpack;
RunBaseDialogModify dialogModify;
RunbaseProgress progress;
SysSign sysSign;
#macrolib.AviFiles
#if.never
#define.CurrentVersion(1)
#define.version1(1)
#localmacro.CurrentList
#endmacro
#endif
}
Наверно разработчики стремятся не создавать каждый раз новый progressBar и новый код для него, а стремятся использовать тот, который уже есть в RunBase. Если я правильно понимаю, его неудобно вызывать из самого Report'а, поэтому его вызывают из классов

Если я не прав - поправьте меня, я могу заблуждаться, но мне кажется все дело именно в этом