Прерывание отчета

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Прерывание отчета

Сообщение s2176 »

Добрый день!
Есть ARD-отчет. В нем 3 цикла по большим таблицам.
Отчет достаточно долгоиграющий, особенно если брать большой период времени(до года), поэтому для каждого цикла есть визуализация с возможностью прерывания.
Пытаюсь в середине выполнения прервать отчет.
Почему-то происходит это очень медленно. Запрос на прерывание выдается, визуализация исчезает, и Гал-ка зависает минут на 5-7.
Выглядит примерно так:
....
.begin
startNewVisual(vtNumericVisual,vfBreak+vfConfirm+vfThread,'выгpyжаю начисления.....',1);
end.
.{ table t1
.....
.begin
if NextVisual()=false { pr_br:=1; stopVisual('',0); break; }
end.
.}
.begin
if pr_br=0 stopVisual('',0);
end.
...
Может, кто-нибудь подскажет, с чем это может быть связано? Как быстро прервать отчет?
Кто сказал, что бесполезно биться головой об стену?!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Желателен текст отчета в студию.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

..полностью..
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Он большой(((
У меня возникли сомнения... а оператор break прерывает такой цикл, как
.{ table
.}
Кто сказал, что бесполезно биться головой об стену?!
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

точно, нашла)))
fbreak!
Кто сказал, что бесполезно биться головой об стену?!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

да, fbreak это именно метод формы. В отличие от break он прерывает формирование самого отчета, а не цикла.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Мне именно это и надо!
Но попутно вопрос (вдруг пригодится): а как прервать цикл
.{ table t1
.}
?
Кто сказал, что бесполезно биться головой об стену?!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Не прав был немного :

fbreak прекращает исполнение формы или цикладо момента его нормального заверешения. Если метод вызван в программном блоке цикла, то поисходит выход из цикла, иначе - выход из формы
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

судя по поведению моей формы, fbreak прерывает не цикл, а всю форму...
Если я прерываю первый цикл, то остальные 2 даже и не пытаются выполниться. Т.е., форма завершает свою работу сразу.
Кто сказал, что бесполезно биться головой об стену?!
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

И все-таки, похоже, Вы правы))) просто я слишком рано прерывала, ничего не успевало выбраться, вот и отчет останавливался сразу, а если хоть что-то уже навыбирается, то отчет дорабатывает...

Спасибо!
Кто сказал, что бесполезно биться головой об стену?!
Ответить