Печать всех .spo-файлов из папки по маске
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 'Begin Description ' Вывод на печать всех .spo-файлов в заданной папке по маске. ' Скрипт обрабатывает все файлы, отвечающие заданной маске (например, "*.spo", "out*.spo"), ' расположенные в заданной папке. ' Допустим, 2 файла с именами output1.spo и myoutput.spo лежат в одной папке. ' Тогда сначала открывается и отсылается на печать output1.spo, затем ' открывается и отсылается на печать myoutput.spo. 'End Description 'Тема: Вывод на печать всех .spo-файлов в заданной папке по маске. 'Ключевые слова: печать, выдача, файлы, пути, папки, .spo. 'Опубликован: 01.08.2002, перевод: 20.06.2008. 'Автор: rlevesque@videotron.ca; перевод: А. Балабанов. 'Размещение: http://www.spsstools.ru/Scripts/Printing/PrintAllSpoFiles.txt (.sbs) 'Проверено: SPSS 15.0.0. 'NB! Когда принцип работы скрипта станет ясен, снимите кавычку комментария с команды objOutputDoc.PrintDoc чтобы 'печать фактически началась. В данном варианте скрипт лишь последовательно открывает/закрывает все 'подходящие файлы .spo в папке - примеч. перев. Option Explicit Sub Main Dim objDocuments As ISpssDocuments Dim objOutputDoc As ISpssOutputDoc Dim strPath As String Dim strFileMask As String Dim strFname As String Dim intCount As Integer Dim I As Integer 'Укажите путь к папке и маску strPath ="c:\\temp\\" strFileMask ="*.spo" 'Определяем имя первого файла выдачи strFname = Dir$(strPath & strFileMask) Set objDocuments = objSpssApp.Documents While strFname <> "" Debug.Print strFname ' Открываем файл документа, делаем документ видимым, запускаем на печать: Set objOutputDoc = objSpssApp.OpenOutputDoc(strPath & strFname) objOutputDoc.Visible = True ' objOutputDoc.PrintDoc ' Для сбережения оперативной памяти закрываем все документы выдачи кроме текущего '(использование всякий раз простой конструкции "objOutputDoc.Close" может приводить к зависанию spsswin.exe!) intCount = objDocuments.OutputDocCount If intCount > 1 Then For I = intCount - 1 To 0 Step -1 Set objOutputDoc = objDocuments.GetOutputDoc(I) If Not objOutputDoc.Designated Then objOutputDoc.Close End If Next End If 'Переходим к следующему файлу в папке strFname = Dir$() Wend Set objOutputDoc = Nothing End Sub |
Related pages
...