9.
Lavalit
02.07.10 16:45
Сейчас в теме
прогресс бар штука конечно очень удобная... но есть один маленький нюанс:
что бы все работало красиво необходимо изначально знать значение ста процентов бара. а потом уже передавать текущее значение и получать процент выполнения чего либо... отчет или копирование файлов или еще к чему там прикрутите прогрессбар.
//***********************
// Функции для работы с прогресс бар
//________________________________________________________________________
Функция ОткрытьПрогресБар(Знач Ч_Число="", Знач Стр_Имя="Запрос")
Если ФС.СуществуетФайл(КаталогИБ()+"Классы\ПрогрессБар.ert")=1 Тогда
Об_СЗ=СоздатьОбъект("СписокЗначений");
Об_СЗ.ДобавитьЗначение(Ч_Число);
Об_СЗ.ДобавитьЗначение(Стр_Имя);
Попытка
ОткрытьФорму("Обработка",Об_СЗ.ВСтрокуСРазделителями(), КаталогИБ()+"Классы\ПрогрессБар.ert");
Исключение
Состояние(СокрЛП(Стр_Имя)+" "+Строка(Ч_Число)+"%");
КонецПопытки;
КонецЕсли;
КонецФункции //ОткрытьПрогресБар
//________________________________________________________________________
Функция ЗакрытьПрогресБар()
Попытка
ОткрытьФорму("Обработка","", КаталогИБ()+"Классы\ПрогрессБар.ert");
Исключение
КонецПопытки;
КонецФункции //ЗакрытьПрогресБар
ОткрытьПрогресБар(ЗначениеСтаПроцентов); //Здесь надо передать стопроцентное значение при открытии как раз прогрессбар и будет понимать сколько оно есть стопроцентов
ОткрытьПрогресБар(0);
Сч=1;
Пока Запрос.Группировка(1) = 1 Цикл
ОткрытьПрогресБар(Сч,Запрос.ЗначениеУпорядочивания(*,*)); // теперь в цикле открываем прогресс и передаем текущее значение прогресса. на самом деле прогресс бар будет "Переоткрываться" -( но мы то знаем, что открытие уже было и прогрессбар еще пока помнит значение ста процентов... ну и есс-но стопроцентов /100 * на текущее значение аккурат вычислит текущий прогресс в процентах)
Сч=Сч+1;
КонецЕсли;
вот собственно и вся интеграция 8-)