
- •Лабораторная работа № 11
- •11.1 Создание форм для редактирования и просмотра данных в vfp через Form Wizard
- •11.2 Создание форм для редактирования и просмотра в vfp через Form Designer
- •1. Проектирование формы
- •2. Создание формы
- •Include file ...
- •3. Выбор и размещение объектов внутри формы.
- •4. Управление объектами.
- •5. Сохранение формы.
- •6. Домашнее задание: продумать кнопки редактирования (Вставить, Добавить, Изменить, Удалить).
- •11.3 Процедуры для формы и управляющих кнопок с использованием ооп
- •1. Задание на программирование
- •2. Описание программ.
- •2.4. Создание методов использования кнопок в режиме редактирования.
- •If deleted ()
- •11.4 Продолжение создания Форм
- •11.5 Кнопка «Удаление/Восстановление»
- •11.5.1 Программа процедуры
- •If file ("tmp.Dbf")
- •11.5.2 Описание работы процедуры кнопки Выход
- •11.6 Кнопка «Вперед» Модифицированная программа процедуры
2. Описание программ.
2.1. Создание процедуры (метода) визуальной доступности кнопок просмотра.
Любым способом вызвать в диалоговое окно Form Designer модифицированную форму Forml, которой присвоено имя "ПОСТАВЩИКИ" (можно по следующему пути: диалоговое окно Project Manager, вкладка Documents, строка Forms, после щелчка по значку + строка Forml в списке Forms, кнопка Modify).
Кроме методов, связанных с событиями, объект (в данном случае наша форма) может содержать и дополнительные методы, которые выполняются только при их вызове. Например, для формы могут быть определены методы перехода на следующую запись, т. е. методы доступности управляющих кнопок. Эти методы могут наследоваться из базового класса, но можно создать их отдельно.
Создание нового метода:
Выполнить команду Form — New Methods
В возникшем диалоговом окне New Methods в текстовом поле Name надо вписать имя метода (допустим bt_update) а в поле Description — краткое описание метода (выполняется самостоятельно)
Нажать кнопку Add. В окне Properties на вкладке All возникает строка с именем нового метода, т.е. добавляется новый метод. Для вызова диалогового окна редактирования этого метода и ввода в нем программного кода надо щелкнуть по возникшей строке.
Ввести текст процедуры (метода)
*Процедура form1.bt_update
*Использование кнопок по месту их нахождения, т.е. доступности
if recno() =1
&&Если указатель записи стоит перед первой записью файла
thisform.command1.enabled= .f. &&He доступна кнопка "Начало" thisform.command4.enabled=.f. &&Не доступна кнопка "Назад"
else
thisform.command1.enabled=.t. &&Доступна кнопка "Начало" thisform.command4.enabled=.t. && Доступна кнопка "Назад"
endif
if recno()=recсount()
&&Если номер текущей записи равен числу записей в файле
thisform.command2.enabled=.f. &&He доступна кнопка "Конец"
thisform.command3.enabled=.f. &&He доступна кнопка "Вперёд"
else
thisform.command2.enabled=.t. &&Доступна кнопка "Конец"
thisform.command3.enabled=.t. &&Доступна кнопка "Вперёд"
endif
2.2. Использование созданной процедуры (метода).
Для выполнения созданного метода необходимо указать имя метода и имя объекта, к которому относится данный метод Имя объекта и имя метола разделяются точкой
В нашем случае: form1.bt_update() (form1 — имя объекта; bt_update — имя метода; () — не обязательно указывать).
2.3. Создание методов использования кнопок в режиме просмотра.
Кнопка "Начало" (Command1):
go top
thisform.txtnomp.refresh() &&Освежение ("перерисовывание" полей Nomp и Famp)
thisform.txtfamp.refresh()
thisform.bt_update &&Включение метода bt_update
Кнопка "Конец" (Command2):
Go bottom
thisform.txtnomp.refresh() &&Освежение ("перерисовывание" полей Nomp и Famp)
thisform.txtfamp.refresh()
thisform.bt_update &&Включение метода bt_update
Кнопка "Вперед" (Command3):
if.not.eof() &&или if!EOF()
skip
if substr(nomp,1,1)<>"П"
SKIP 1 &&или Go bottom
endif
endif
_screen.activeform.refresh()
thisform.bt_update
Кнопка "Назад" (Command4):
if.not.bof() && или if!bof()
SKIP -1
If substr(Nomp,1,1)<>"П"
skip
endif
endif
_screen.activeForm.Refresh()
thisform.bt_update