В этой главе на примере работы с записной книжкой будут рассмотрены три способа организации из сценария диалога с пользователем.
Во-первых, мы еще раз подробно остановимся на том, как можно использовать параметры командной строки для запуска различных заданий из многозадачного WS-файла, который в нашем случае будет реализовывать несколько функций для работы с записной книжкой.
Во-вторых, для того же WS-файла мы создадим кнопочное (командное) меню, в котором пользователь сможет выбрать нужное ему действие с помощью ввода определенных символов в диалоговом окне.
Наконец, будет показано, как можно организовать в сценарии полноценный пользовательский интерфейс с помощью HTML-форм и браузера Internet Explorer.
В качестве примера рассмотрим сценарий для работы с записной книжкой в XML-формате (структура файла book.xml, в котором хранится записная книжка, описана в предыдущей главе), в котором будут реализованы следующие функции:
□ просмотр всех записей в алфавитном порядке;
□ поиск записей по фамилии;
□ добавление и удаление записей.
Каждая из этих задач реализуется в виде отдельного задания в файле PhoneBook.wsf (листинг 7.1).
…
…
…
…
Некоторые функции (например, настройка пути к XML-файлу) должны присутствовать во всех заданиях, поэтому такие общие функции мы вынесем в отдельный файл Usage.js, который будет подключаться в каждом из заданий следующим образом:
В файл Usage.js помещены следующие функции:
□ конструктор объекта Person
(одна запись из книжки);
□ функция GetTagVal(
, которая возвращает значения тега tgName
obj
□ функция PersonToArray(
, которая заполняет поля экземпляра PersonRec
объекта Person
данными из соответствующих XML-элементов и добавляет сформированную запись в массив PersonArr
;
□ функции TopReport(
и BottomReport(
, с помощью которых в выходной файл печатается заголовок отчета и итоговая информация соответственно;
□ функция PrintPerson(
, в которой происходит вывод данных из полей объекта PersonRec
в выходной файл;
□ функция MakeOut()
, которая обеспечивает запуск Блокнота и открывает в нем выходной файл;
□ функция InitPath(), в которой строятся пути к XML-файлу, содержащему данные, и выходному файлу.
Usage.js объявляются глобальные переменные и константы. Полностью содержимое файла Usage.js приведено в листинге 7.2.
/*******************************************************************/
/* Имя: Usage.js */
/* Язык: JScript */
/* Описание: Общие функции для записной книжки */
/*******************************************************************/
//Объявляем переменные
var
WshShell,FSO,
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
PathOut, //Путь к выходному файлу
FBook, //Файл с данными
FOut, //Выходной файл
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
ForWriting=2; //Константа для создания выходного файла
//Инициализируем константы для диалоговых окон
var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0;
//Конструктор объекта 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; //Квартира