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;
Поделиться:
Популярные книги
Новые горизонты
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Иной. Том 5. Адская работа
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Зодчий. Книга III
3. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Петля, Кадетский корпус. Книга вторая
2. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
4.80
рейтинг книги
Курсант поневоле
1. Кровь и лёд
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Дворянин
2. Император и трубочист
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Тринадцатый XII
12. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
7.00
рейтинг книги
Законы Рода. Том 5
5. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Неудержимый. Книга XXX
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Последний Паладин
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Убивать чтобы жить 8
8. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследник с Меткой Охотника
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Отморозок 3
3. Отморозок
Фантастика:
попаданцы
5.00