Во-вторых, для того же WS-файла мы создадим кнопочное (командное) меню, в котором пользователь сможет выбрать нужное ему действие с помощью ввода определенных символов в диалоговом окне.
Наконец, будет показано, как можно организовать в сценарии полноценный пользовательский интерфейс с помощью HTML-форм и браузера Internet Explorer.
Многозадачный сценарий для работы с записной книжкой
В качестве примера рассмотрим сценарий для работы с записной книжкой в XML-формате (структура файла book.xml,
в котором хранится записная книжка, описана в предыдущей главе), в котором будут реализованы следующие функции:
просмотр всех записей в алфавитном порядке;
поиск записей по фамилии;
добавление и удаление записей.
Каждая из этих задач реализуется в виде отдельного задания в файле PhoneBook.wsf (листинг 7.1).
<!-- ****************** Просмотр всех записей ******************* -->
<job id="SortName">
…
</job>
<!-- *************** поиск записей по фамилии ************** -->
<job id="FindName">
…
</job>
<!-- *************** удаление записи по фамилии *************** -->
<job id="DelRec">
…
</job>
<!-- *************** добавление записи *************** -->
<job id="AddRec">
…
</job>
</package>
Некоторые функции (например, настройка пути к XML-файлу) должны присутствовать во всех заданиях, поэтому такие общие функции мы вынесем в отдельный файл Usage.js, который будет подключаться в каждом из заданий следующим образом:
<script language="JScript" src="Usage.js"/>
В файл Usage.js помещены следующие функции:
конструктор объекта
Person
(одна запись из книжки);
функция
GetTagVal(obj, tgName)
, которая возвращает значения тега
tgName
XML-элемента
obj
;
функция
PersonToArray(XNode)
, которая заполняет поля экземпляра
PersonRec
объекта
Person
данными из соответствующих XML-элементов и добавляет сформированную запись в массив
PersonArr
;
функции
TopReport(Mess)
и
BottomReport(Mess)
, с помощью которых в выходной файл
печатается заголовок отчета и итоговая информация соответственно;
функция
PrintPerson(PersRec)
, в которой происходит вывод данных из полей объекта
PersonRec
в выходной файл;
функция
MakeOut
, которая обеспечивает запуск Блокнота и открывает в нем выходной файл;
функция InitPath, в которой строятся пути к XML-файлу, содержащему данные, и выходному файлу.
Usage.js объявляются глобальные переменные и константы. Полностью содержимое файла Usage.js приведено в листинге 7.2.
Листинг 7.2. Общие функции для работы с записной книжкой