Функция ОКНО_СТАТУСА
Функция ОКНО_СТАТУСА позволяет управлять блокирующим окном статуса (прогресса выполнения). Окно статуса блокирует Главное окно программы Инфо_Бухгалтер, поэтому в данный момент времени возможно существование только одного окна статуса.
ФУНКЦИЯ ТИП_ЛОГИКА: ОКНО_СТАТУСА(ТИП_СТРОКА: команда [; ТИП_СТРОКА: парам ])
Параметры
- команда
- Определяет команду управления окном статуса. Допускаются следующие команды:
- "CREATE" – создание окна статуса;
- "CLOSE" – закрытие окна статуса;
- "MESSAGE" – изменение текста сообщения в окне статуса;
- "PROGRESS" – изменение текста индикатора прогресса;
- "PERCENT" – изменение показания процентов индикатором прогресса.
- парам
- Дополнительный параметр, смысл которого определяется значением параметра команда:
- CREATE – заголовок окна статуса;
- CLOSE – не используется;
- MESSAGE – текст сообщения;
- PROGRESS – текст сообщения;
- PERCENT – значение процентов в строковом виде (например, "15").
Возвращаемое значение
Функция возвращает ДА, если указанная команда выполнена успешно и пользователь не нажимал кнопку "Отмена" в окне статуса. Функция возвращает НЕТ для команды CREATE, когда окно статуса уже существует. Для всех команд, кроме CREATE и CLOSE, функция возвращает НЕТ, когда пользователь нажал кнопку "Отмена".
Замечания:
- Второе окно статуса не может быть создано даже в том случае, когда первое создал другой алгоритм (бланк, типовая операция или ibx).
- При выходе из алгоритма созданное им окно статуса автоматически закрывается.
- Вызов ОКНО_СТАТУСА("CLOSE") никогда не приводит к ошибке, всегда возвращает ДА.
- Управление окном статуса возможно только из того алгоритма, который его создал.
- Индикатор прогресса становится виден только после первой устаноки процентов.
- Для проверки нажатия кнопки "Отмена" без изменения текста или процентов можно вызывать ОКНО_СТАТУСА("").
Пример использования
Кол = 400 ЕСЛИ ОКНО_СТАТУСА("CREATE", "Идет обработка...") ТО ЦИКЛ ДЛЯ (и = 1, Кол) ок = ОКНО_СТАТУСА("MESSAGE", "Текущий элемент №" + СТР(и)) проц = РУБ(100 * и / Кол) ок = ОКНО_СТАТУСА("PROGRESS", "Обработано " + СТР(и) + " из " + СТР(Кол) + " (" + СТР(проц) + "%)") ок = ОКНО_СТАТУСА("PERCENT", СТР(проц)) ЕСЛИ НЕ ок ТО СООБЩЕНИЕ("Обработка отменена!") СТОП КОНЕЦ_ЕСЛИ ПАУЗА(10) // выполняем работу... КОНЕЦ_ЦИКЛА ОКНО_СТАТУСА("CLOSE") КОНЕЦ_ЕСЛИ