Задача такая: нужно автоматически сразу после формирования rtf-отчета в Галактике отправлять его по электронной почте. Почту отправляю внешней программой. Основная проблема в том, как отловить момент окончания формирования отчета. Для теста я вставил небольшой код, просто выводящий сообщение, непосредственно перед окончанием текста присоединенной формы (.endform).
В итоге получается такая картина: формируется отчет, после этого выскакивает мое сообщение. Но к этому моменту сам отчет rtf-файл еще не полностью сформирован (нахожу сам rtf-файл, копирую его, пытаюсь открыть и получаю сообщение, что файл поврежден) и при этом размер самого файла где-то олоко 131 кБайта. Далее, после закрытия моего сообщения открывается в ворде сформированный отчет и при этом размер rtf-файла становится равным 143 кБайта.
Можно ли как-нибудь отловить событие, когда rtf-файл (отчет) будет польностью сформирован? Или, может, можно как-то подавить автоматическое открывание этого отчета в ворде, и дать ему возможность доформироваться еще до окончания .endform?
Обработка отчета сразу после его формирования
Модераторы: m0p3e, edward_K, Модераторы
-
- Сообщения: 7
- Зарегистрирован: 30 май 2006, 15:48
- Контактная информация:
Обработка отчета сразу после его формирования
Oh how I wish for soothing rain
All I wish is to dream again
My loving heart lost in the dark
For hope I'd give my everything
All I wish is to dream again
My loving heart lost in the dark
For hope I'd give my everything
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Если вы отчет формируете своей прогой на vip то можно.
ключевое
для начала
OutF.nodialog ; - зачем нам спрашивать список форм?
посылка должна быть после
Outf.showfile('')
наличие кавычек важно!!
в самой форме в конце пишете
.begin nameproto.fexit end.
Вариант переделать вывод в Excel(через xl функции) и в конце сохранить файл и запустить макрос.
runform хорошо только для ard (или автономных отчетов).
ключевое
для начала
OutF.nodialog ; - зачем нам спрашивать список форм?
посылка должна быть после
Outf.showfile('')
наличие кавычек важно!!
в самой форме в конце пишете
.begin nameproto.fexit end.
Вариант переделать вывод в Excel(через xl функции) и в конце сохранить файл и запустить макрос.
runform хорошо только для ard (или автономных отчетов).
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Если отчет формируется стандартным интерфейсом - то никак его не выловить, ибо формирование отчета завершается при вызове одного из методов формы
а) Form.ShowFile - показывает на экране
б) Form.PrintFile - печатает на принтер без показа
в) Form.PrepareOutFile - заканчивает формирование без показа на экране.
Соответственно если у Вас отчет на экране показывается, сл-но в исходнике интерфейса работает случай а) . Соответственно вам нужно реализовать случай в). Без изменения исходника никак не получится.
Ну, в случае собственного интерфейса, все гораздо проще. вызываете вместо а) в)
а) Form.ShowFile - показывает на экране
б) Form.PrintFile - печатает на принтер без показа
в) Form.PrepareOutFile - заканчивает формирование без показа на экране.
Соответственно если у Вас отчет на экране показывается, сл-но в исходнике интерфейса работает случай а) . Соответственно вам нужно реализовать случай в). Без изменения исходника никак не получится.
Ну, в случае собственного интерфейса, все гораздо проще. вызываете вместо а) в)