|
|
|
| Есть большой отчет, основанный на массиве отобранных записей,каждой записи соответствует при печати лист А4. Листов много, и если вдруг при печати обнаружится ошибка на первых листах (например неправильная дата или что иное), то необходимо прервать печать, чтобы попусту бумагу не тратить. Понятно, что надо обработать событие "Форматирование" секции "Область данных" отчета. Но как это сделать? | |
|
| |
|
|
|
| Попробуйте эту процедуру
http://hiprog.com/index.php?option=com_content&task=view&id=356
и
вот такой код
strComputer = "."
' где "HP QuietJet" - имя принтера
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'HP QuietJet'")
For Each objPrinter in colInstalledPrinters
objPrinter.CancelAllJobs()
Next
|
| |
|
| |
|
|
|
| Я не знаю заранее имя принтера. Как обработать дефолтный? И что означают константы типа Const VK_ESCAPE = &H1B. Где можно посмотреть их список(справочник)? | |
|
| |
|
|
|
| здесь можно про принтеры посмотреть
http://hiprog.com/index.php?option=com_content&task=view&id=464
как дефолтовый определить не помню, с помощью WMI точно можно.
Если не найдете пишите, поищу у себя
это константы используемые функциями win32 API, VBA про них ничего не знает и приходится их прописывать в ручную
http://hiprog.com/index.php?option=com_content&task=view&id=714
http://hiprog.com/index.php?option=com_content&task=view&id=477 | |
|
| |
|
|
|
| Если в системе установлен принтер по умолчанию, его имя можно прочитать так: (с А2002 и выше)
?Application.Printer.DeviceName | |
|
| |
|