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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 110 111 112 113 114 115 116 117 118 ... 175
Перейти на страницу:

 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);

В }

}

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

function TopReport() {

  //Печатаем в ячейки текст

 XL.Cells(1,1).Value="Фамилия";

В XL.Cells(1,2).Value="РРјСЏ";

 XL.Cells(1,3).Value="Телефон";

 //Выделяем три ячейки

В XL.Range("A1:C1").Select();

 //Устанавливаем полужирный текст для выделенного диапазона

В XL.Selection.Font.Bold = true;

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

В XL.Selection.HorizontalAlignment=xlCenter;

}

//Печать содержимого полей объекта Person

function PrintPerson(PersRec) {

 //Увеличиваем счетчик количества записей

В NomRec++;

 //В первом столбце печатаем фамилию

В XL.Cells(NomRec+1,1).Value=PersRec.LastName;

 //Во втором столбце печатаем имя

В XL.Cells(NomRec+1,2).Value=PersRec.Name;

 //В третьем столбце печатаем телефон

В XL.Cells(NomRec+1,3).Value=PersRec.Phone;

}

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

function ListPersonArray() {

В var i;

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

В PersonArr.sort(SortLastName);

В 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

В XL=WScript.CreateObject("Excel.Application");

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

В XL.Visible=true;

 //Открываем новую рабочую книгу

В XL.WorkBooks.Add();

 //Устанавливаем нужную ширину колонок

В XL.Columns(1).ColumnWidth = 40;

В XL.Columns(2).ColumnWidth = 40;

В XL.Columns(3).ColumnWidth = 10;

 //Печатаем заголовок таблицы

В TopReport();

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

В ListFile();

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

В XL.ActiveWorkbook.SaveAs(PathOut);

}

//Запускаем основную функцию

Main();

</script>

</job>

</package>

Глава 9

Рспользование РІ сценариях баз данных

На практике довольно часто возникают задачи, для решения которых необходимо из сценариев получать доступ к данным, хранящимся во внешних базах самого различного формата (структурированные текстовые файлы, таблицы DBF и Paradox, базы данных Microsoft Access и Microsoft SQL Server и т.д.). Это довольно просто можно сделать с помощью технологии Microsoft ADO (ActiveX Data Objects). Объекты ADO являются частью компонентов доступа к данным Microsoft (MDAC, Microsoft Data Access Components), которые поставляются, например, с браузером Microsoft Internet Explorer версии 5.0 и выше (таким образом, в Windows ХР эти компоненты присутствуют изначально) или могут быть свободно получены с сервера Microsoft (http://msdn.microsoft.com/data/download.htm).

Мы не будем здесь останавливаться на объектной модели и принципах работы ADO (желающие подробнее разобраться с этими вопросами могут обратиться к документации MSDN), а здесь лишь разберем несколько конкретных примеров работы с таблицей самой простой структуры: DBF- формата (до появления XML формат DBF широко применялся для обмена данными между разными автоматизированными системами, да и сейчас продолжает поддерживаться многими производителями программных продуктов). Как и в предыдущих главах, здесь будут использоваться данные записной книжки (ниже мы создадим сценарий, который будет копировать в таблицу информацию из XML-файла book.xml, с которым мы работали ранее).

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