Страница 1 из 1

Последовательный вывод отчетов

Добавлено: 12 май 2011, 09:37
Den_Is
В интерфейсе формируется несколько отчетов, последовательно друг за другом. После того как сформирован первый начинется расчет второго (занимает какоето время, примерно час), потом следующий. Отчеты не выводятся на экран, а просто складываются в определенную папку. В шедулере настроил проверку этой папки и если там появляется файлы отчетов то они копируются по сети определенным пользователям, с удалением из текущей папки. Все это дело вызывается в автоматическом режиме по расписанию.
Теперь сам вопрос.
Описываю в начале все формы
Form form1('OUT\%USER%\form1.slk') With NoVisual;
Form form2('OUT\%USER%\form2.xls') With NoVisual;
Form form3('OUT\%USER%\form3.xls') With NoVisual;
P
Затем идут процедуры расчета.
После того как сформирован первый отчет делаю
form1.PutEvent(feBreak);
Затем вызывается процедура расчета следующего отчета и так по порядку.
Так вот после того как появился первый отчет form1 его не возможно открыть (и тем более переместить из текущей папки), т.е. он заблокирован до конца работы программы.
Сделал вывод всех отчетом одновременно в конце программы, одним махом, но такой вариант не очень удобен тем что приходится ждать пока не отработают все процедуры.
Может быть кто подскажет как выйти из такой ситуации.

Re: Последовательный вывод отчетов

Добавлено: 12 май 2011, 10:54
m0p3e
Сам не пробовал, но по описанию вроде подходит:

Код: Выделить всё

Метод PrepareOutFile   

Назначение
Функция готовит отчет к печати, не показывая его.

Описание
procedure PrepareOutFile : boolean;

Результат
Функция возвращает логическую истину true, если операция прошла успешно.
Делаем сразу после feBreak.

Re: Последовательный вывод отчетов

Добавлено: 13 май 2011, 01:45
edward_K
Ну если фейс ваш, то можно и form1.abortform сделать.

Re: Последовательный вывод отчетов

Добавлено: 13 май 2011, 07:02
oiko
Сделайте 3 интерфейса каждый с 1 отчетом. И запускайте их по-очереди из четвертого.