Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программное обеспечение » Windows Script Host для Windows 2000/XP - Андрей Попов

Windows Script Host для Windows 2000/XP - Андрей Попов

Читать онлайн Windows Script Host для Windows 2000/XP - Андрей Попов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 106 107 108 109 110 111 112 113 114 ... 175
Перейти на страницу:

function GetTagVal(obj, tgName) {

В var ElemList;

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

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

В ElemList=obj.getElementsByTagName(tgName);

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

В if (ElemList.length>0)

  //Возвращаем значение тега tgName

В В  return ElemList.item(0).text

В else return "";

}

//Заполнение нового элемента массива

function PersonToArray(XNode) {

 //Создаем новый экземпляр PersonRec объекта Person

В PersonRec=new Person();

 //Заполняем поля объекта PersonRec

В PersonRec.LastName=GetTagVal(XNode,"LastName");

В PersonRec.Name=GetTagVal(XNode,"Name");

В PersonRec.Phone=GetTagVal(XNode,"Phone");

В PersonRec.Street=GetTagVal(XNode,"Street");

В PersonRec.House=GetTagVal(XNode,"House");

В PersonRec.App=GetTagVal(XNode,"App");

В PersonRec.Note=GetTagVal(XNode,"Note");

 //Сохраняем объект PersonRec в массиве

В PersonArr[PersonArr.length]=PersonRec;

}

//Создание массива объектов Person

function FileToArray() {

В var XML,Root,NomRec,CurrNode,i;

 //Создаем массив PersonArr

В PersonArr=new Array();

 //Создаем объект XML DOM

В XML = WScript.CreateObject("Msxml.DOMDocument");

 //Загружаем XML-документ из файла

В XML.load(PathBook);

 //Сохраняем в переменной Root ссылку на корневой элемент документа

В Root=XML.documentElement;

 //Перебираем все дочерние элементы первого уровня вложенности

 //для корневого элемента

В for (i=1; i<=Root.childNodes.length-1;i++) {

  //Выделяем в коллекции XML-элементов i-й элемент

В  CurrNode=Root.childNodes.item(i);

  //Добавляем новый элемент в массив объектов Person

В  PersonToArray(CurrNode);

В }

}

//Вывод заголовка отчета

function TopReport(Mess) {

 //Устанавливаем выравнивание по центру

В Sel.ParagraphFormat.Alignment=wdAlignParagraphCenter;

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

В Sel.Font.Bold=true;

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

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

В Sel.TypeText("n");

 //Устанавливаем выравнивание слева

В Sel.ParagraphFormat.Alignment=wdAlignParagraphLeft;

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

В Sel.Font.Bold=false;

}

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

function BottomReport(Mess) {

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

В Sel.Font.Bold=true;

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

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

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

В Sel.Font.Bold=false;

}

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

function TypeString(Title, Content) {

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

В Sel.Font.Italic=true;

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

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

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

В Sel.Font.Italic=false;

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

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

}

//Печать содержимого полей объекта 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++;

}

//Сортировка массива и печать его содержимого

function ListPersonArray() {

В var i;

 //Сортировка массива по фамилии

В PersonArr.sort(SortLastName);

 //Цикл по всем элементам массива PersonArr

В for (i=0;i<=PersonArr.length-1;i++) {

  //Печать информации для текущей записи

В  PrintPerson(PersonArr[i]);

В }

}

//Функция для сортировки массива по фамилии

function SortLastName(Pers1,Pers2) {

В if (Pers1.LastName<Pers2.LastName) return -1;

В else if (Pers1.LastName==Pers2.LastName) return 0;

В else return 1;

}

//Печать содержимого файла с данными

function ListFile() {

 //Считываем данные из файла в массив

В FileToArray();

 //Печатаем информацию из массива

В ListPersonArray();

}

//Основная запускная функция

function Main() {

 //Создаем объект WshShell

В WshShell = WScript.CreateObject("WScript.Shell");

 //Определяем пути к файлам

В InitPath();

 //Создаем объект Application

В WA=WScript.CreateObject("Word.Application");

 //Создаем новый документ

В WD=WA.Documents.Add();

 //Делаем окно Winword видимым

В WA.Visible=true;

 //Максимизируем окно Winword

В WA.WindowState=wdWindowStateMaximize;

 //Получаем ссылку на объект Selection

В Sel=WA.Selection;

 //Устанавливаем размер шрифта 12 пт

В Sel.Font.Size=12;

 //Печатаем заголовок отчета

 TopReport("Общий список");

 //Печатаем содержимое XML-файла с данными

В ListFile();

 //Печатаем итоговую информацию

 BottomReport("Всего записей: "+PersonArr.length);

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

В WD.SaveAs(PathOut);

}

/*******************  Начало  **********************************/

Main();

/*************  Конец *********************************************/

Вывод записей в таблицу

Для того чтобы выводить записи из файла с данными в таблицу Word, мы поступим следующим образом.

Создадим вначале документ-шаблон table.dot, в котором будет нарисована таблица для вывода информации из записной книжки, а также будут написаны заголовок отчета и итоговая информация (рис. 8.7). Задача сценария заключается в создании нового документа по этому шаблону и заполнении строк таблицы нужными данными.

Рис. 8.7. Документ-шаблон table.dot

Напомним, как создается новый шаблон в Word. Запустив Word, нужно выбрать в меню Файл (File) пункт Создать (New) и установить переключатель Создать (New) в положение шаблон (template) (рис. 8.8)

1 ... 106 107 108 109 110 111 112 113 114 ... 175
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Windows Script Host для Windows 2000/XP - Андрей Попов.
Комментарии