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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

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

WD=WA.Documents.Add(PathTempl, false);

Окно Word делается видимым и максимизируется:

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

WA.Visible=true;

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

WA.WindowState=wdWindowStateMaximize;

В переменной

Sel
сохраняется ссылка на объект
Selection
:

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

Sel=WA.Selection;

Как

и в сценарии ListWord.js, данные из файла book.xml считываются в массив
PersonArr
с использованием объектной модели XML DOM. Вывод информации из этого массива в строки таблицу происходит в функции
ListPersonArray
:

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

function ListPersonArray {

 var i;

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

 PersonArr.sort(SortLastName);

 //Переходим к закладке TableStart

 WD.Bookmarks("TableStart").Select;

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

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

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

PrintPerson(PersonArr[i]);

 }

}

Как мы видим, сначала в этой функции в семействе

Bookmarks
находится закладка с именем "TableStart" и с помощью метода
Select
происходит выделение этой закладки в документе. Затем в цикле
for
вызывается функция
PrintPerson(PersReс)
для каждого элемента массива
PersonArr
; в этой функции содержимое полей объекта
PersRec
последовательно печатается в ячейки таблицы:

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

}

Итак, печать в таблице происходит следующим образом:

после вывода текста в текущую ячейку мы перемещаемся в соседнюю ячейку справа (константа
wdCell
проинициализирована в самом начале сценария,
wdCell=12
):

WA.Selection.MoveRight(wdCell);

Если при этом текущая ячейка находилась в третьем столбце, то после такого перемещения в таблицу автоматически будет добавлена новая строка.

После того как все строки в таблице напечатаны, в файл выводится итоговая информация. Для этого мы выделяем закладку с именем "NomRec" и печатаем туда количество элементов в массиве

PersonArr
:

//Выделяем закладку "NomRec"

WD.Bookmarks("NomRec").Select;

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

WA.Selection.Text=PersonArr.length;

Окончательно сформированный файл сохраняется на диске под именем out.doc:

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

WD.SaveAs(PathOut);

Полностью текст сценария ListWordTable.js приведен в листинге 8.2.

Листинг 8.2. Вывод данных из XML-файла в таблицу Microsoft Word

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

/* Имя: ListWordTable.js */

/* Язык: JScript */

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

/* Microsoft Word */

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

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

var

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

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

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

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

 PathTempl, //Путь к документу-шаблону

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

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

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

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

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

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

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

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

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

function InitPath {

 var BasePath;

 BasePath=WshShell.CurrentDirectory+"\\";

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

Часовая башня

Щерба Наталья Васильевна
3. Часодеи
Фантастика:
фэнтези
9.43
рейтинг книги
Часовая башня

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Случайная свадьба (+ Бонус)

Тоцка Тала
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Случайная свадьба (+ Бонус)

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Наследник 2

Шимохин Дмитрий
2. Старицкий
Фантастика:
попаданцы
альтернативная история
фэнтези
5.75
рейтинг книги
Наследник 2

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник