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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

<td><input type="text" name="txtStreet" size="50"></td>

 </tr>

 <tr>

<td>Дом</td>

<td><input type="text" name="txtHouse" size="10"></td>

 </tr>

 <tr>

<td>Кв.</td>

<td><input type="text" name="txtApp" size="5"></td>

 </tr>

 <tr>

<td>Примечание</td>

<td><input type="text" name="txtNote" size="80"></td>

 </tr>

</table>

<br>

<input type="button" value="<<" name="btnFirst">

<input type="button" value="<" name="btnPrevious">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="button" value="Новая
запись" name="btnNew">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="button" value="Записать" name="btnSave">

<input type="button" value="Отменить" name="btnCancel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="button" value="Удалить" name="btnDelete">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="button" value=">" name="btnNext">

<input type="button" value=">>" name="btnFinal">

</form>

</body>

</html>

Создание объекта для обмена данными между XML-файлом и формой

В отличие от рассмотренного выше сценария PhoneBook.wsf, в сценарии IEPhoneBook.js функции для работы с записной книжкой не будут разделены по разным заданиям, поэтому для более четкой организации сценария мы воспользуемся объектно-ориентированным подходом и создадим два объекта

Person
и
ListPersons
, методы которых и будут осуществлять обработку данных и связь между XML-файлом и пользовательской формой.

Как и раньше, в свойствах объекта

Person
будет храниться запись об одном человеке. Кроме этого, мы добавим в объект
Person
метод
LoadDialog
, который будет заполнять поля ввода в форме данными из соответствующих свойств объекта
Person
:

//Конструктор объекта Person

function Person {

 //Инициализируем свойства объекта

 this.LastName="";

 this.Name="";

 this.Phone="";

 this.Street="";

 this.House="";

 this.App="";

 this.Note="";

 //Устанавливаем для метода LoadDialog указатель на

 //функцию Person_LoadDialog

 this.LoadDialog=Person_LoadDialog;

}

//Заполнение
полей в форме для текущей записи

function Person_LoadDialog {

 //Заполняем поля ввода в форме значениями соответствующих

 //свойств объекта Person

 doc.all.txtLastName.value = this.LastName;

 doc.all.txtName.value=this.Name;

 doc.all.txtPhone.value=this.Phone;

 doc.all.txtStreet.value=this.Street;

 doc.all.txtHouse.value=this.House;

 doc.all.txtApp.value = this.App;

 doc.all.txtNote.value = this.Note;

}

Принцип доступа к полям ввода формы по их именам, который используется в методе

LoadDialog
, объясняется ниже (см. разд. "Обработка событий, генерируемых элементами управления формы").

Основным объектом, который обеспечивает обмен данными между XML-файлом записной книжки и разработанной нами формой, является объект

ListPersons
. Этот объект будет содержать три свойства и десять методов.

Первым свойством объекта

ListPersons
мы сделаем массив
PersonArr
объектов
Person
; этот массив будет служить промежуточным буфером при чтении данных из XML-файла для отображения в форме и при записи измененных данных из формы в файл. В остальных двух свойствах
СurRecord
и
IsChanged
объекта
ListPersons
будут соответственно храниться номер текущей записи и логическое значение (
true
или
false
), являющееся признаком того, были ли изменены пользователем данные в форме.

Назначение методов объекта

ListPersons
ясно из комментариев, которые приведены в конструкторе этого объекта (листинг 7.7). 

Листинг 7.7. Конструктор объекта
ListPersons

function ListPersons {

 // Свойства объекта

 //Создаем массив PersonArr экземпляров объекта Person

 this.PersonArr = new Array;

 //Инициализируем номер текущей записи

 this.CurRecord = 0;

 //Сбрасываем признак изменения данных в форме

 this.IsChanged = false;

 // Методы объекта

 //Устанавливаем для методов указатели на соответствующие функции

 this.FileToArray=ListPersons_FileToArray;

 this.SaveData=ListPersons_SaveData;

 this.LoadDialog=ListPersons_LoadDialog;

 this.RefreshDialog=ListPersons_RefreshDialog;

 this.NextRecord=ListPersons_NextRecord;

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

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Пышка и Герцог

Ордина Ирина
Фантастика:
юмористическое фэнтези
историческое фэнтези
фэнтези
5.00
рейтинг книги
Пышка и Герцог

Имперский Курьер. Том 5

Бо Вова
5. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 5

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Крестоносец

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

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

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

Призыватель нулевого ранга

Дубов Дмитрий
1. Эпоха Гардара
Фантастика:
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга