Министерство образования и науки РФ
Новосибирский государственный технический университет

Лабораторная работа №4 по дисциплине «Базы данных» в среде Visual FoxPro 6.0
Выполнил: Преподаватель:
Студент: Майснер Г. В.
Факультет: АВТ
Группа: АМ-209
Вариант: 5
Новосибирск, 2005
Цель работы: изучить средства Visual FoxPro 6.0, позволяющие создавать экранные формы ввода-вывода данных в удобном для пользователя виде, сопровождая их пояснительными надписями, использовать другие элементы оформления: рамки, выделение цветом. Изучить различные элементы управления: кнопки, переключатели, списки, раскрывающиеся списки, счётчики, флажки, поля ввода и редактирования.
Задание: Создать форму на основе лабораторной работы №1. В форме обязательно присутствие таких элементов, как Label (метка), TextBox (поле ввода), EditBox (поле редактирования), Command Button (Кнопка), Option Group (Переключатель), CheckBox (флажок), ComboBox (раскрывающийся список), Spinner (счётчик), Image (изображение), Common Group (группа кнопок), Grid (Таблица). Элементы формы в качестве выполняемого действия должны содержать результаты предыдущих лабораторных работ: создание отчёта, поиск, сортировка, редактирование, просмотр данных, индексирование по заданному критерию и т. д. Форма должна быть озаглавлена, а также содержать кнопку перемещения по базе данных и кнопку «Выход». Предполагается, что база данных создана ранее, либо предусматривается её создание стандартными средствами в среде Visual FoxPro 6.0. Также обязательным условием является наглядное представление работы созданных элементов.
Форма должна иметь 5 вкладок, изменять цвет и возвращать его к обычному с помощью флажка. Переключатель должен иметь 7 положений, вид переключателя – стандартный. Счётчик ограничивается значениями «-10» и «0». Значения «-9» и «-3» являются минимумом и максимумом для ввода в поле счётчика с клавиатуры, шаг изменения значения поля равен 0.3. Раскрывающийся список создать таким, чтобы из него пользователь мог выбрать значение или ввести его в поле ввода списка, источником данных для которого является заданный список значений.
Результаты работы:
В результате выполнения данной лабораторной работы были освоены средства создания экранных форм в среде Visual FoxPro 6.0. В рамках лабораторной работы №1 была создана таблица согласно варианту задания. В лабораторной работе №2 использована эта таблица и сформирован отчёт по заданию. В лабораторной работе №3 используются таблицы и отчёты, созданные в рамках предыдущих лабораторных работ. В лабораторной работе №4 используются все результаты предыдущих лабораторных работ. Согласно варианту задания, помимо основных элементов управления использовались следующие элементы с указанными опциями:
Элемент управления Page Frame (рис.1):

Рис.1 Вид базы данных с 5 вкладками (Вкладка №1).
Значение свойства PageCount равно 5 (Intro, Operations, Index, Other, Table).

Рис.2 Вид базы данных с 5 вкладками (Вкладка №2).

Рис.3 Вид базы данных с 5 вкладками (Вкладка №3).

Рис.4 Вид базы данных с 5 вкладками (Вкладка №4).

Рис.5 Вид базы данных с 5 вкладками (Вкладка №5).
Элемент управления CheckBox (Флажок) (рис.6):
![]()
Рис.6 Переключатель цвета.
Чтобы флажок реализовывал переключение с одного цвета на другой, нужно написать следующую процедуру:
if (thisform.backcolor=RGB(236,233,216))
thisform. backcolor=RGB(180,0,50)
else
thisform. backcolor=RGB(236,233,216)
endif
thisform. refresh
Элемент управления Option Group (Переключатель) (рис.7 и рис.8):
Виды данных элементов управления – стандартный и графический. Следовательно, соответствующие свойства данных элементов управления должны иметь значение standard и graphical. Переключатель задаёт поле, по которому производится индексирование таблицы.
и 
Рис.7 Стандартный вид. Рис.8 Графический вид
Элемент управления Spinner (счётчик) (рис. 9):
В соответствии с заданием счётчик реализуется с минимальным значением (KeyBoardLowValue) «-9» и с максимальным (KeyBoardHighValue) – «-3». Далее, устанавливаем значение поля increment равным 0.3.

Рис.9 Вид счетчика в БД.
На рис.10 показаны свойства счетчика:

Рис.10 Свойства счетчика.
Элемент управления Image (изображение) (рис.11)
Чтобы установить изображение, нужно установить свойство ShowTips – True, для изображения установить следующие свойства:
- Picture: E:\Am-209\MihaM\ woman_photo_top[1].jpg и Readers_Choice_Logo[1].jpg ToolTipText: Девушка и логотип Выбор Читателей


Рис.11 Некоторые используемые рисунки.
Элемент управления ComboBox (раскрывающийся список) (рис. 12)
Раскрывающийся список реализован таким, чтобы из него пользователь мог выбрать значение или ввести его в поле ввода списка, источником данных для которого является заданный список значений.

Рис. 12 Раскрывающийся список.
Кроме специально заданных элементов управления согласно варианту лабораторной работы использованы и такие основные, как:
· Кнопки (см. рис.2 кнопки Top, Previous, Next!!!, Bottom),
· Переключатели (см. рис.3 переключатели Index on:),
· Раскрывающиеся списки (см. рис.12),,
· Счётчики (см. рис.9),
· Флажки (см. рис.6),,
· Поля ввода и редактирования (см. рис.2),.
Реализованные процедуры
Группа методов для передвижения по базе данных:
1. Установка на начало БД:
go top
thisform. refresh
2. Движение к предыдущему элементу БД:
if (BOF())
MessageBOx("Пришли в начало базы данных.")
else
skip -1
endif
thisform. refresh
3. Движение к следущему элементу БД:
if (EOF())
MessageBOx("Дошли до конца базы данных.")
else
skip 1
endif
thisform. refresh
4. Движение к концу БД:
go bottom
thisform. refresh
Метод для индексирования базы данных по выбранному полю:
OptionGroup1.Option1
do case
case thisform. pageframe1.page3.optiongroup1.option1.value = 1
close database
use E:\AM-209\MihaM\111.dbf exclusive
index on familiya to E:\AM-209\MihaM\laba4temp1.idx
endcase
OptionGroup1.Option2
do case
case thisform. pageframe1.page3.optiongroup1.option2.value = 1
close database
use E:\AM-209\MihaM\111.dbf exclusive
index on imya to E:\AM-209\MihaM\laba4temp2.idx
endcase
OptionGroup1.Option3
do case
case thisform. pageframe1.page3.optiongroup1.option3.value = 1
close database
use E:\AM-209\MihaM\111.dbf exclusive
index on otchestvo to E:\AM-209\MihaM\laba4temp3.idx
endcase
OptionGroup2.Option1
use E:\AM-209\MihaM\111.dbf exclusive
index on fakultet to E:\AM-209\MihaM\laba4temp4.idx
thisform. refresh
OptionGroup2.Option2
use E:\AM-209\MihaM\111.dbf exclusive
index on gruppa to E:\AM-209\MihaM\laba4temp5.idx
thisform. refresh
OptionGroup2.Option3
use E:\AM-209\MihaM\111.dbf exclusive
index on kurs to E:\AM-209\MihaM\laba4temp6.idx
thisform. refresh
Кнопка Find!!!
seek thisform. pageframe1.page3.edit1.value
browse
Метод для выdода отчёта:
1) General report
modify report "E:\AM-209\MihaM\report1.frx"
2) Multicoloms report
modify report "E:\AM-209\MihaM\REPORT1(MNOGOCOLON).FRX"
Метод для выхода из экранной формы (кнопка EXIT):
thisform. release
Встроенное меню (по клику правой кнопки мыши) (рис.13):

Рис.13 Выпадающее меню
В свойствах формы RightClickEvent используем процедуру:
do "E:\AM-209\MihaM\3\MENU1VSPLIV. MPR"
Там же в свойствах формы ShowTips ставим значение. T. – True для показа всплывающих подсказок.
Далее за любым элементом можно закрепить выражение для всплывающей подсказки или для сообщения в статусной строке, используя свойства ToolTipText и StatusBarText соответственно.
Анализ результатов и выводы:
Созданная экранная форма приложения позволяет ещё до реального своего воплощения продемонстрировать структуру этого приложения, его перечень команд и процедур.
Как показали результаты выполнения данной лабораторной работы, для экранных форм можно использовать широкий спектр элементов управления для более наглядного функционирования и использования базы данных.
Экранные формы являются удобным средством для представления информации, являясь элементом интерфейса базы данных. С помощью созданных элементов управления и реализованных процедур можно эффективно перемещаться по базе данных, выполнять поиск, сортировку, индексирование, поиск, редактирование и т. д.
Для работы с отчётами можно сделать всплывающее меню для вывода отчёта конкретного вида. Также, если требуется выполнить несколько действий, то можно реализовать процедуру. Эти и многие другие возможности были успешно исследованы и применены на практике.
Таким образом, в результате выполнения данной лабораторной работы были освоены основные приёмы создания экранных форм приложений, использующих базы данных. Оболочка Visual FoxPro 6.0. предоставляет широкий спектр как для создания баз данных, таблиц, отчётов так и для создания меню и экранных форм.


