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

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

Жанры

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+"\\";

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

Конец детства (сборник)

Кларк Артур Чарльз
Фантастика:
научная фантастика
7.00
рейтинг книги
Конец детства (сборник)

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VII

Адвокат Империи 15

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

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

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

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Адвокат Империи 14

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

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

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

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

Геном хищника. Книга девятая

Гарцевич Евгений Александрович
9. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга девятая

Сапер. Том II

Вязовский Алексей
2. Сапер
Фантастика:
альтернативная история
4.25
рейтинг книги
Сапер. Том II

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

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

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

Эволюционер из трущоб. Том 7

Панарин Антон
7. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 7