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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

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

Шрифт:

После выполнения функции

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

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

 PathOut=BasePath+"out.doc";

}

//Конструктор объекта Person

function Person(LastName,Name,Phone,Street,House,App,Note) {

 this.LastName=LastName; //Фамилия

 this.Name=Name; //Имя

 this.Phone=Phone; //Телефон

 this.Street=Street; //Улица

 this.House=House; //Дом

 this.App=App; //Квартира

 this.Note=Note; //Примечание

}

//Определение значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 ElemList=obj.getElementsByTagName(tgName);

 //Проверяем, есть ли в коллекции ElemList элементы

Поделиться с друзьями: