Функция УСТ_СТАТУС_ВЫПОЛНЕНИЯ
Для работы требуется соединение с базой данных.
Функция УСТ_СТАТУС_ВЫПОЛНЕНИЯ позволяет задать поясняющий текст и/или процент выполнения для текущего действия в коде.
ФУНКЦИЯ ЛОГИКА: УСТ_СТАТУС_ВЫПОЛНЕНИЯ(СТРОКА: текст = ""; ЦЕЛОЕ: процент = -1)
Параметры
- текст
- Текст описания текущего действия. Если задана пустая строка, то текст не меняется. Указание строки "_RESET_" позволяет сбросить текущую информацию о статусе.
- процент
- Процент выполненного действия для отображения прогресса. Если указанное значение меньше 0, то текущее значение не меняется.
Возвращаемое значение
Функция возвращает ДА для продолжения выполнения, НЕТ – в случае требования пользователя отменить текущее действие. Когда функция возвращает НЕТ, рекомендуется прервать текущие вычисления.
Замечания:
- При вызове функции в серверных алгоритмах обновляется информация о статусе в контексте соединения с базой данных. Эта информация имеет больший приоритет, чем задаваемая системным кодом серверной части. Передача этой информации на клиентское место производится стандартным путем, что позволяет отображать ее в стандартном диалоге ожидания или в модальном индикаторе прогресса.
- При вызове функции на стороне клиента информация о статусе нигде не запоминается. Вместо этого происходит непосредственное обновление модального индикатора прогресса при его наличии.
- Если алгоритм устанавливал информацию о статусе путем вызова функции УСТ_СТАТУС_ВЫПОЛНЕНИЯ, то при его завершении информация о статусе сбрасывается.
- Вызов рез = УСТ_СТАТУС_ВЫПОЛНЕНИЯ("", –1) позволяет проверить необходимость отмены вычислений без изменения текущих значений текста и процента.
Пример:
// Управление статусом в циклическом действии ПЕРЕМ ЦЕЛОЕ: N = 1000 УСТ_СТАТУС_ВЫПОЛНЕНИЯ( "Расчет в цикле…", -1) // установка текста ЦИКЛ ДЛЯ(и = 1, N) // … полезное действие // установка процента ЕСЛИ НЕ УСТ_СТАТУС_ВЫПОЛНЕНИЯ( "", 100 * и / N ) ТО СТОП // пользователь хочет прервать вычисления КОНЕЦ_ЕСЛИ КОНЕЦ_ЦИКЛА УСТ_СТАТУС_ВЫПОЛНЕНИЯ( "_RESET_", -1) // сброс статуса