03.04.2013, 14:14 | #1 |
Участник
|
Всем доброго времени суток!
А подскажет кто-нибудь, как у диалогового окна, в котором идёт прогресс бар, запретить нажимать кнопку Отмена? Ну или самостоятельно среагировать на её нажатие? Суть проблемы: обращаюсь я из Нава к внешним данным (в репорте) и обращение это довольно долгое, посему, дабы пользователь не сильно нервничал и не думал что у него всё зависло, сделал я диалог с прогресс баром. Да вот беда, если пользователь нажмёт Отмена, то репорт брякнется, а внешние данные останутся висеть сиротливо в памяти так и не обработанными и что самое печальное, не закрытыми как следует. Как быть? |
|
03.04.2013, 15:16 | #2 |
Участник
|
Надо логику, которая выполняет работу с внешними данными, вынести из репорта в кодеюнит. А в репорте написать так:
IF NOT ExternalDataMgt.RUN THEN BEGIN // здесь пишем код для закрытия всех процессов с внешними данными т.д. END; Соответственно в самом кодеюните у вас кроме работы с внешними данными будет и прогресс бар ... Window.OPEN('External data handling...\@1@@@@@@@') ... Window.UPDATE(1,...) // Код Window.CLOSE; Если пользователь нажмет Отмена, то кодеюнит свалится с ошибкой и в репорте у вас отработается код внутри условия IF NOT ExternalDataMgt.RUN. |
|
03.04.2013, 15:55 | #3 |
Участник
|
Цитата:
Сообщение от Fly
Надо логику, которая выполняет работу с внешними данными, вынести из репорта в кодеюнит. А в репорте написать так:
IF NOT ExternalDataMgt.RUN THEN BEGIN // здесь пишем код для закрытия всех процессов с внешними данными т.д. END; Соответственно в самом кодеюните у вас кроме работы с внешними данными будет и прогресс бар ... Window.OPEN('External data handling...\@1@@@@@@@') ... Window.UPDATE(1,...) // Код Window.CLOSE; Если пользователь нажмет Отмена, то кодеюнит свалится с ошибкой и в репорте у вас отработается код внутри условия IF NOT ExternalDataMgt.RUN. |
|
03.04.2013, 17:29 | #4 |
Участник
|
Какова роль пользователя в процессе обмена? Может в Nas засунуть запуск отчета, а результат на почту присылать.
А то пользователь тупо сидит и смотрит как прогрессбар бегает, другими делами не занимается, но и не брошен программой - лафа, че. |
|
03.04.2013, 18:10 | #5 |
Участник
|
Роль пользователя - запустить и в конце получить сформированный файлик.
|
|
03.04.2013, 19:08 | #6 |
Участник
|
Мне кажется концепция NAS вполне подходит под эту задачу. Не нужно ни куда смотреть, чувствовать себя обделенным вниманием, жать на всякие кнопки опасные.
|
|