Надо логику, которая выполняет работу с внешними данными, вынести из репорта в кодеюнит. А в репорте написать так:
IF NOT ExternalDataMgt.RUN THEN BEGIN
// здесь пишем код для закрытия всех процессов с внешними данными т.д.
END;
Соответственно в самом кодеюните у вас кроме работы с внешними данными будет и прогресс бар
...
Window.OPEN('External data handling...\@1@@@@@@@')
...
Window.UPDATE(1,...)
// Код
Window.CLOSE;
Если пользователь нажмет Отмена, то кодеюнит свалится с ошибкой и в репорте у вас отработается код внутри условия IF NOT ExternalDataMgt.RUN.
|