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

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

Жанры

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",

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

Барон не признает правила

Ренгач Евгений
12. Закон сильного
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Барон не признает правила

Локки 7. Потомок бога

Решетов Евгений Валерьевич
7. Локки
Фантастика:
аниме
эпическая фантастика
фэнтези
5.00
рейтинг книги
Локки 7. Потомок бога

Телохранитель Цесаревны

Зот Бакалавр
5. Герой Империи
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Телохранитель Цесаревны

Искатель 4

Шиленко Сергей
4. Валинор
Фантастика:
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Искатель 4

Наследие Маозари 8

Панежин Евгений
8. Наследие Маозари
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 8

Неудержимый. Книга XVIII

Боярский Андрей
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVIII

Двойник Короля 2

Скабер Артемий
2. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля 2

Инженер Петра Великого 3

Гросов Виктор
3. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Инженер Петра Великого 3

Погранец

Поселягин Владимир Геннадьевич
2. Решала
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Погранец

Бояръ-Аниме. Газлайтер. Том 33

Володин Григорий Григорьевич
33. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 33

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Сильнейший Столп Империи. Книга 4

Ермоленков Алексей
4. Сильнейший Столп Империи
Фантастика:
фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 4

Мастер 8

Чащин Валерий
8. Мастер
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер 8