Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

Автоматическое закрытие Word после печати.   Найти похожие ветки 

 
EternalWonderer   (2002-05-30 15:12) [0]

Задача: выдать документ на печать при помощи Word, после чего автоматически закрыть его.
Решение:
Procedure PrintClose(WordDoc: _Document);
Var EP: OleVariant;
Begin
EP := EmptyParam;
WordDoc.PrintOut(EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP);
WordDoc.Close(EP,EP,EP);
End;

Проблема: Всё работает замечательно, если Word не закрывается вместе с документом (т.е. если есть ещё открытые документы). В противном случае мы имеем малоприятное сообщение "Печать ещё не закончена. Закрытие Word приведёт ...". При помощи какого приёма можно заставить Word сначала допечатать документ, а потом уже закрыться?


 
AFROLOV ©   (2002-05-30 15:26) [1]

Const wdAlertsNone=0;
.....
.....
Procedure PrintClose(WordDoc: _Document);
Var EP: OleVariant;
Begin
EP := EmptyParam;
WordDoc.PrintOut(EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP,EP);
WordDoc.DisplayAlerts:=wdAlertsNone;
WordDoc.Close(EP,EP,EP);
End;


 
EternalWonderer   (2002-05-30 15:37) [2]

>AFROLOV © (30.05.02 15:26)
Маленькая поправочка:
WordDoc. Application.DisplayAlerts := wdAlertsNone;
Спасибо, но НЕ помогло.


 
AFROLOV ©   (2002-05-30 15:44) [3]

Тогда есть предложение дождаться окончания печати и после этого закрывать Word. Или закрыть все документы и после этого закрывать Word.


 
EternalWonderer   (2002-05-30 16:01) [4]

ОК, можно попытаться дождаться. Только вот как "спросить" у Word, закончил он печать документа или ещё нет?

Может, возможен такой вариант: написать макрос на VB, "запихнуть" его в Word, и запускать после PrintOut вместо Close, чтобы он дожидался окончания печати и закрывал документ (и Word)?


 
AFROLOV ©   (2002-05-30 16:20) [5]

Цитата из справки по VBA:
BackgroundPrintingStatus Property

Returns the number of print jobs in the background printing queue. Read-only Long.

Ждем след образом:
While (WordDoc.Application.BackgroundPrintingStatus>0) do
begin
end;



 
EternalWonderer   (2002-05-30 16:40) [6]

Отлично! Требуемая функциональность получена. Осталось немного "подрехтовать" (например, вынести запрос в отдельный поток, добавить контроль открытия других документов на момент окончания печати и т.д.). БОЛЬШОЕ спасибо, Алексей..

А вообще, мне кажется предпочтительней вариант с макросом, - вот только возиться некогда ...


 
vecs   (2002-05-30 17:18) [7]

ето и многое другое может халявный ARWordReport
http://shortway.to/vsoft


 
EternalWonderer   (2002-05-30 17:19) [8]

Спасибо, посмотрю ...



Страницы: 1 вся ветка

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
14-30979
Kozhanov
2002-05-06 12:07
2002.06.10
Help-файлы


1-30822
Wins
2002-05-31 13:58
2002.06.10
создать doc - файл и заполнить в нем таблицу


3-30679
PoweR
2002-05-16 14:28
2002.06.10
Message from Exception


1-30799
Semion
2002-05-29 20:04
2002.06.10
Как заставить подлый TDateTimePicker выводить текст нужным цветом


1-30814
gserg
2002-05-31 14:05
2002.06.10
События в D.