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">
<input type="button" value="Новая
запись" name="btnNew">
<input type="button" value="Записать" name="btnSave">
<input type="button" value="Отменить" name="btnCancel">
<input type="button" value="Удалить" name="btnDelete">
<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
рейтинг книги
Темный Лекарь 2
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IX
9. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Попаданка в деле, или Ваш любимый доктор
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Кукловод
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50
рейтинг книги
Бремя империи
Бремя империи - 1.
Фантастика:
альтернативная история
9.34
рейтинг книги
Элита элит
1. Элита элит
Фантастика:
боевая фантастика
8.93