Тема: Dialog.OPEN
Показать сообщение отдельно
Старый 03.04.2013, 15:55   #3  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Fly Посмотреть сообщение
Надо логику, которая выполняет работу с внешними данными, вынести из репорта в кодеюнит. А в репорте написать так:

IF NOT ExternalDataMgt.RUN THEN BEGIN
// здесь пишем код для закрытия всех процессов с внешними данными т.д.
END;

Соответственно в самом кодеюните у вас кроме работы с внешними данными будет и прогресс бар

...
Window.OPEN('External data handling...\@1@@@@@@@')
...
Window.UPDATE(1,...)
// Код
Window.CLOSE;

Если пользователь нажмет Отмена, то кодеюнит свалится с ошибкой и в репорте у вас отработается код внутри условия IF NOT ExternalDataMgt.RUN.
Не совсем подойдёт такое решение. Т.к. логика внешних данных напрямую зависит от репорта. Т.е. работа с внешними данные происходит при каждом OnAfterGetRecord, а так же и на OnPreDataItem и на OnPostDataItem. Плюс ко всему в репорте имеется ещё и вложенность...