Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

}
 

Как мы видим, текст печатается с помощью метода

TypeText
, а форматируется путем изменения соответствующих свойств объекта
Selection
(которые, в свою очередь, являются объектами того или иного типа). Отметим, что именные константы, которые используются для форматирования текста, были предварительно проинициализированы в самом начале сценария:

//Инициализируем константы Winword'а

var wdAlignParagraphLeft=0, wdAlignParagraphCenter=1, wdWindowStateMaximize=1;

После

выполнения функции
TopReport
в документе Word будет полужирным шрифтом с выравниванием по центру напечатана строка "Общий список", а курсор установится на две строки ниже (рис. 8.6).

Рис. 8.6. Заголовок отчета, напечатанный в сценарии ListWord.js

Далее в сценарии данные из XML-файла book.xml считываются в массив

PersonArr
с использованием объектной модели XML DOM (этот процесс был подробно описан в главе 7). Печать информации из элемента массива
PersonArr
(экземпляра объекта
Person
) производится в функции
PrintPerson(PersRec)
:

//Печать содержимого полей объекта Person

function PrintPerson(PersRec) {

 //Печатаем поля текущей записи

 TypeString("Фамилия",PersRec.LastName);

 TypeString("Имя",PersRec.Name);

 TypeString("Телефон",PersRec.Phone);

 TypeString("Улица",PersRec.Street);

 TypeString("Дом",PersRec.House);

 TypeString("Кв.",PersRec.App);

 TypeString("Заметки",PersRec.Note);

 //Печатаем разделитель с переводом строки

 Sel.TypeText("-------------------------------------\n");

 //Увеличиваем номер текущей записи

 NomRec++;

}

Здесь используется функция

TypeString(Title, Сontent)
, в которой происходит печать наклонным шрифтом названия поля (параметр
Title
) и прямым шрифтом значения этого поля (параметр
Content
):

//Вывод одного поля из записи

function TypeString(Title, Content) {

 //Устанавливаем наклонный шрифт

 Sel.Font.Italic=true;

 //Печатаем название поля

 Sel.TypeText(Title+":\t");

 //Отменяем наклонный шрифт

 Sel.Font.Italic=false;

 //Печатаем содержимое
поля

 Sel.TypeText(Content+"\n");

}

В качестве итоговой информации в функции

BottomReport(Mess)
печатается общее количество записей в книжке:

//Вывод итоговой информации

function BottomReport(Mess) {

 //Устанавливаем полужирный шрифт

 Sel.Font.Bold=true;

 //Выводим сообщение с переводом строки

 Sel.TypeText(Mess+"\n");

 //Отменяем полужирный шрифт

 Sel.Font.Bold=false;

}

После того как вся нужная информация напечатана в документе, он сохраняется на диске с помощью метода

SaveAs
объекта
Document
:

//Сохраняем созданный документ под именем out.doc

WD.SaveAs(PathOut);

В листинге 8.1 приводится полный текст сценария ListWord.js.

Листинг 8.1. Вывод данных из XML-файла в Microsoft Word (обычный текст)

/*******************************************************************/

/* Имя: ListWord.js */

/* Язык: JScript */

/* Описание: Печать данных из записной книжки в */

/* файл Microsoft Word */

/*******************************************************************/

//Объявляем переменные

var

 WshShell, //Экземпляр объекта WshShell

 BasePath, //Путь к текущему каталогу

 PathBook, //Путь к файлу с данными

 PathOut, //Путь к выходному файлу Winword

 WA, //Экземпляр объекта Application

 WD, //Экземпляр объекта Document

 Sel, //Экземпляр объекта Selection

 NomRec=0, //Счетчик количества записей

 PersonRec, //Объект для хранения данных об одном человеке

 PersonArr; //Массив для хранения объектов PersonRec

//Инициализируем константы Winword'а

var wdAlignParagraphLeft=0,wdAlignParagraphCenter=1,wdWindowStateMaximize=1;

//Построение путей к файлам

function InitPath {

var BasePath;

 BasePath=WshShell.CurrentDirectory+"\\";

 //Путь к файлу с данными

 PathBook=BasePath+"book.xml",

Поделиться:
Популярные книги

Отряд

Посняков Андрей
Отряд тайных дел
Фантастика:
фэнтези
боевая фантастика
6.25
рейтинг книги
Отряд

Ставрос. Падение Константинополя

MadameD
Проза:
историческая проза
5.00
рейтинг книги
Ставрос. Падение Константинополя

История кавалерии. Вооружение, тактика, крупнейшие сражения

Денисон Джордж Тэйлор
Научно-образовательная:
история
cпецслужбы
военная история
5.00
рейтинг книги
История кавалерии. Вооружение, тактика, крупнейшие сражения

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII

В огне государственного катаклизма

Бунич Игорь Львович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
В огне государственного катаклизма

Комментарии к письмам

Гоголь Николай Васильевич
Документальная литература:
публицистика
5.00
рейтинг книги
Комментарии к письмам

Эволюция личности

Чиксентмихайи Михайи
Научно-образовательная:
психология
6.40
рейтинг книги
Эволюция личности

Двери между мирами (Извлечение троих) (др. перевод)

Кинг Стивен
2. Темная Башня
Фантастика:
фэнтези
7.29
рейтинг книги
Двери между мирами (Извлечение троих) (др. перевод)

Повседневная жизнь Испании Золотого века

Дефурно Марселен
Живая история: Повседневная жизнь человечества
Научно-образовательная:
история
культурология
5.00
рейтинг книги
Повседневная жизнь Испании Золотого века

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Русская трагедия; Гибель утопии

Зиновьев Александр Александрович
Проза:
русская классическая проза
7.00
рейтинг книги
Русская трагедия; Гибель утопии

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

История, мифы и боги древних славян

Пигулевская Ирина Станиславовна
Научно-образовательная:
история
5.00
рейтинг книги
История, мифы и боги древних славян

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV