|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Recoilme
![]() Смотри ветку:
Тормозит ли градусник 30 минут из 40 тратить на перерисовку текста - это ненормально, притом что кода там - 2 строчки поправить Я могу только повторить - разберитесь со стандартным кодом. Разберитесь с tutorial_progress как работает прогресс-бар в двухуровневой и трехуровневой системе. Ок. Recoilme, большое спасибо за ваш ценный вклад. Еще проблемы есть? Я, например, очень хотел бы понять что за проблемы с переключением компании. Прогрусс-бар вообще не должен зависеть от компаний. А еще? |
|
![]() |
#2 |
Участник
|
код:
PHP код:
без < 1сек а если у нас 10 000 000 циклов (например бежим по InventTrans) получается прогресс бар отожрет почти 2 часа Последний раз редактировалось ivas; 19.04.2007 в 10:20. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от ivas
![]() код:
PHP код:
без < 1сек а если у нас 10 000 000 циклов (например бежим по InventTrans) получается прогресс бар отожрет почти 2 часа Представьте нормальную работу... Представили? Нет-нет, вы представьте действительно нормальную работу Аксапты: в каждом цикле делается поиск, расчет какой-нибудь себестоимости, проверка какого-нибудь дурацкого кредитного лимита, запись результатов расчета по нескольким таблицам, неизбежные блокировки... Как вы думаете, сколько часов займет в Аксапте выполнение 10млн циклов при НОРМАЛЬНОЙ работе? Вы предлагаете пользователю ждать все это время, не имея никакой информации о ходе работ? Я правильно понимаю, что вы предлагаете пользователю сидеть несколько часов-суток перед пустым экраном? Я не ошибся? Да, прогресс-бар сам занимает некоторое количество ресурсов. Но его польза при больших нормальных обработках гораздо больше, нежели какие-то жалкие несколько процентов дополнительного времени... Возвращаясь к вашему коду. Вы просто не умеете его готовить. Во-первых, вы не установили setTotal. Во-вторых, если отображение прогресс-бара выполняет дольше чем сама работа, то надо пользоваться методом UpdateInterval(), чтобы установить большее время между обновлениями. Посмотрите же в метод update(), люди! |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
![]() |
#4 |
Участник
|
согласен, setCount по запарке вставил
вот по вашему совету Код: #Define.LoopCount(100000) static void Job80(Args _args) { SysOperationProgress pBar = new SysOperationProgress(); int time = timeNow(); int i, j; ; pBar.setCaption("Обработка"); pBar.updateInterval(10); // типа ускорение? for (i = 0; i < #LoopCount; i++) { pBar.setText(strfmt("Операция № %1", i)); pBar.incCount(); j++; } info(strfmt("Прошло: %1 сек.", timeNow() - time)); } дело в том что действительно сталкивался с этим в реальной обработке: предварительная выгрузка inventTrans (15000000 строк) в мапу с прогресс баром 4часа без 2часа решилось добавлением пары строк PHP код:
|
|
|
За это сообщение автора поблагодарили: Recoilme (5). |
![]() |
#5 |
Участник
|
Типа да. Только в вашем случае вполне можно поставить и 100.
В смысле? |
|
Теги |
progress bar, sysoperationprogress, баг, бегунок, законченный пример, полезное, смена компании |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|