Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];

Вниз

Автоматическое закрытие 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
3-30710
diww
2002-05-18 13:27
2002.06.10
не определяется тип поля


4-31055
Even
2002-04-08 09:42
2002.06.10
Как обойтись без TJpegImage


3-30715
jaric
2002-05-17 17:32
2002.06.10
Как при форм ADOQuery использ данн из др ADOQuery как из подзапр


14-30997
антон_
2002-05-07 21:55
2002.06.10
не знаю, как сделатью Очень нужна помощь.


14-31009
VID
2002-05-05 00:54
2002.06.10
Рассинхронизация звука и изображения в mpeg-файлах.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский