Windows Script Host для Windows 2000/XP
Шрифт:
//Путь к файлу с данными
PathBook=BasePath+"book.xml",
//Путь к выходному файлу
PathOut=BasePath+"out.doc";
//Путь к документу-шаблону
PathTempl=BasePath+"table.dot";
}
//Конструктор объекта 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 элементы
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);
}
}
//Печать содержимого полей объекта Person
function PrintPerson(PersRec) {
//Печатаем поля текущей записи
WA.Selection.Text=PersRec.LastName;
//Переходим к следующей ячейке таблицы
WA.Selection.MoveRight(wdCell);
WA.Selection.Text=PersRec.Phone;
WA.Selection.MoveRight(wdCell);
WA.Selection.Text=PersRec.Note;
if (NomRec<PersonArr.length-1)
//Если напечатаны еще не все записи, то нужно
//добавить в таблицу новую строку
WA.Selection.MoveRight(wdCell);
//Увеличиваем номер текущей записи
NomRec++;
}
//Сортировка массива и печать его содержимого
function ListPersonArray {
var i;
//Сортировка массива по фамилии
PersonArr.sort(SortLastName);
//Переходим к закладке TableStart
WD.Bookmarks("TableStart").Select;
//Цикл по всем элементам массива 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;
Поделиться:
Популярные книги
Имя нам Легион. Том 17
17. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Я Гордый часть 7
7. Стальные яйца
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Я уже барон
2. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Звездная Кровь. Экзарх III
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Адвокат
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Графиня с изъяном. Тайна живой стали
Фантастика:
фэнтези
героическая фантастика
киберпанк
5.00
рейтинг книги
Император Пограничья 5
5. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный маг императора 2
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Размышления русского боксёра в токийской академии Тамагава
1. Размышления русского боксёра в токийской академии
Фантастика:
альтернативная история
6.80
рейтинг книги
Лекарь Империи 4
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще не барон
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Царь царей
9. Бедовый
Фантастика:
фэнтези
мистика
5.00
рейтинг книги
Архил...? Книга 2
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00