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

на главную

Жанры

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;

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

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Наследница Драконов

Суббота Светлана
2. Наследница Драконов
Любовные романы:
современные любовные романы
любовно-фантастические романы
6.81
рейтинг книги
Наследница Драконов

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Темный Лекарь 2

Токсик Саша
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 2

Восход. Солнцев. Книга IX

Скабер Артемий
9. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IX

Попаданка в деле, или Ваш любимый доктор

Марей Соня
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Попаданка в деле, или Ваш любимый доктор

Кукловод

Злобин Михаил
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50
рейтинг книги
Кукловод

Бремя империи

Афанасьев Александр
Бремя империи - 1.
Фантастика:
альтернативная история
9.34
рейтинг книги
Бремя империи

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит