Главная страница
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.013 c
1-30873
Moroz S.
2002-05-29 17:59
2002.06.10
Как создать свою форму-функцию наподобие MessageDlg?


3-30726
ват
2002-05-18 16:26
2002.06.10
импорт таблицы EXCEL


1-30809
Hogo
2002-05-31 12:39
2002.06.10
Как показать поверх


4-31051
DeMoN-777
2002-04-09 10:55
2002.06.10
Критическая запарка (ComboBox)


4-31060
heruvim4ik
2002-04-05 07:24
2002.06.10
Как програмно расшарить диск С: (или любой другой)