Показать сообщение отдельно
Старый 20.10.2024, 19:57   #1  
SuperStar88 is offline
SuperStar88
Участник
 
82 / 10 (1) +
Регистрация: 11.08.2017
? AX 2009 ProgressBar из нескольких полос. Отображение времени
Есть два прогресс-бара. 1-й отображает основные операции (расчёт того, расчёт сего и экспорт в Эксель), а при экспорте в Эксель формируется 2-й прогресс-бар.
И получается, что в 1-м - TotalCount = 4, а во 2-м - TotalCount допустим 5000.

Первый дошел до последнего пункта и отображает, что осталось 10 секунд, а потом сидишь и смотришь как 4-6 часов продвигается нижний прогресс-бар. При этом отображает, что осталось те же 10 секунд.

Можно ли это как-то пофиксить? Рисую их через стандартный SysOperationProgress
X++:
void run()
{
     simpleProgress = SysOperationProgress::newGeneral(#aviUpdate, this.caption(), 4);

     simpleProgress.setText("Операция 1");
     simpleProgress.incCount();
     simpleProgress.update(true);
     this.calc1();

     .....

     simpleProgress.setText("Экспорт в Эксель");
     simpleProgress.incCount();
     simpleProgress.update(true);
     this.exportExcel();
}

void exportExcel()
{
     excelProgress = SysOperationProgress::newGeneral('', '', totalRows);

     while select inventTable
     {
           excelProgress.setText(strFmt("Номенклатура %1", inventTable.ItemId));
           excelProgress.incCount();
           excelProgress.update(true);
 
           ....
     }
}

Последний раз редактировалось SuperStar88; 20.10.2024 в 20:01.