StopReport
В отчете есть диалоговое окно, в котором при запуске задаются пользовательские фильтры. Если никакой фильтр не установлен, выводится предупреждение, что отчет может выполняться очень долго. По нажатию пользователем "отмена" идет StopReport. Вопрос: почему все равно выполняется SQL? Назначение SQL запросу идет по коду ниже.
Комментарии
If ctl_StockEdit.Text='' Then
If [MessageBox('Отчет будет выполняться по всем складам, это может занять много времени. Продолжить?','Подтверждение',mb_IconQuestion Or mb_OkCancel)]=mrCancel Then StopReport
На практике при такой схеме обрабатывается код, стоящий после StopReport.
В моем случае для Query назначается и выполняется SQL. Так что процедура отмены выполнения отчета растягивается минут на 20.
Конечно, этоу неприятность можна обойти:
If ctl_StockEdit.Text='' Then sw:= [MessageBox('Отчет будет выполняться по всем секциям, это может занять много времени. Продолжить?','Подтверждение',mb_IconQuestion Or mb_OkCancel)]=mrOk;
If sw Then
Begin
//Выполнение запроса и обработка переменных
End
Else
STOPREPORT;
Но после нажатия "Отмена" получаем сообщение: "No SQL Statement available".
Мелочь, но неприятно.
P.S. Огромное спасибо, что ответили на мои вопросы,- я думал тут уже живых нету.