|
![]() |
#1 |
Участник
|
Цитата:
2 Посчитать колво обрабатываемых записей во всех циклах и это считать общим COUNTом. В последнем вложенном цикле наращивать значение счетчика, сдвигая значение прогресса. |
|
![]() |
#2 |
Участник
|
Цитата:
1) если кол-во в первом цикле будет = 1. Тогда , если вся выборка займет например час - то, пользователь увидит 0%, и через час 100% 2) Как я могу посчитать кол-во во всех циклах - если внутренние циклы постоянно имеют разное кол-во записей. Цитата:
Сообщение от randrews
![]() Цитата:
Для общего случая - Вариант 1) Если есть возможность быстро вычислить сумарное количество итераций, то Вы сами выше напеисали код. Вариант 2) Остается только неравномерное движение прогрес бара. Например Код: Dial.OPEN('Выполнение @1@@@@@@@'); I_COUNT := Employee1.COUNT; REPEAT I := I + 1; J_COUNT := SomeTable.COUNT; J := 0; REPEAT J := J + 1; Dial.UPDATE(1,ROUND(((I+J / J_COUNT ) / I_COUNT * 10000),1)); UNTIL SomeTable.NEXT = 0; UNTIL Employee1.NEXT = 0; ![]() Получается прогресс будет прыгать , то вперед, то назад ? |
|