Между таблицами существует четыре типа отношений, которые были рассмотрены на лекции. Все эти типы отношений поддерживаются в Visual FoxPro.
Создание отношений между таблицами
Как правило, в Visual FoxPro при создании форм, отчётов и запросов используется несколько таблиц, между которыми установлены постоянные отношения. Такие таблицы называются связанными. Из двух связанных таблиц одна является главной, а другая – подчинённой. Главную таблицу называют родительской, а подчинённую – дочерней. При создании индексов для родительской таблицы должен быть определён ключ типа Primary (Первичный) или типа Candidate (Потенциальный), а для дочерней таблицы – индекс для связи с родительской таблицей типа Regular (Обычный).
Для создания отношений между таблицами выполните следующие действия:
1.Откройте окно конструктора базы данных, в которой эти таблицы размещены.
2.Откройте родительскую таблицу в конструкторе таблиц.
3.На вкладке Indexes (Индексы) создайте первичный ключ для поля. Для этого в поле столбца. Name (Имя) введите наименование индекса. Для простого индекса в качестве его имени удобно использовать наименование поля, по которому индекс создаётся.
4.В столбце Туре (Тип) выберите из списка значение Primary (Первичный).
5.В столбце Expression (Выражение) нажмите кнопку построителя. В открывшемся диалоговом окне Expression Builder (Построитель выражений) в списке Fields (Поля) дважды щёлкните мышью на своё поле. Оно будет перенесено в поле Expression (Выражение). Нажмите кнопку ОК для закрытия диалогового окна.
6.Индекс для таблицы создан. Нажмите кнопку ОК для закрытия окна конструктора таблицы.
7.Откройте в конструкторе дочернюю таблицу.
8.Перейдите на вкладку Indexes (Индексы) и создайте ключ типа Regular (Обычный) для выбранного поля.
9.Нажмите кнопку ОК для закрытия окна конструктора таблицы.
10.Выберите родительскую таблицу.
11.Установите курсор мыши на первичный ключ таблицы.
36
12.Нажмите кнопку мыши и, не отпуская её, переместите курсор мыши на индекс дочерней таблицы, по которому устанавливается связь.
13.Отпустите кнопку мыши.
14.В окне конструктора базы данных отображается в виде линии созданное отношение между таблицами (рисунок 3.17). Если дважды щёлкнуть левой кнопкой мыши на линии, то откроется диалоговое окно Edit Relationship (Редактирование отношения) (рисунок 3.18), в котором слева приведено наименование родительской таблицы и расположен раскрывающийся список индексов таблицы, а справа размещена аналогичная информация о дочерней таблице. Используя раскрывающиеся списки, можно изменять индексы, но которым связываются таблицы. В этом диалоговом окне указан также тип установленного отношения между таблицами. Для сохранения отношения нажмите кнопку ОК, а для отказа – кнопку Cancel (Отмена).
Рисунок 3.17 – Отображение связи между таблицами
Рисунок 3.18 – Диалоговое окно Edit Relationship
37
Установите курсор на линию, соединяющую связываемые таблицы. Толщина линии увеличивается. При нажатии на ней правой кнопки мыши появляется контекстное меню, содержащее четыре команды (рисунок 3.19). Команда Remove Relationship (Удалить отношение) удаляет установленное между таблицами отношение. При выборе команды Edit Relationship (Редактирование отношения) открывается диалоговое окно Edit Relationship (Редактирование отношения), позволяющее изменить установленное отношение. Команда Edit Referential Integrity (Редактирование целостности данных) открывает окно Referential Integrity Builder...(Построитель целостности данных).
Рисунок 3.19 – Контекстное меню.
Контрольные вопросы и задания
1.Создайте БД в своём проекте.
2.Добавьте в неё спроектированные ранее таблицы.
3.Создайте индексы.
4.Расставьте отношения между таблицами.
5.Как создается БД в окне проекта? Что такое Database Designer? Как вызывается?
6.В чём отличие, преимущества (недостатки) БД в окне проекта и вне его?
7.Что такое таблица? С помощью какого инструмента вы создавали таблицы? Какие инструменты ещё вам известны?
8.Перечислите известные вам типы полей.
9.Для чего создаются индексы? Какие их виды вы можете назвать?
10.Перечислите известные отношения между таблицами (с пояснением).
ВVisual FoxPro для просмотра, ввода и редактирования данных, хранящихся
втаблицах, используются формы, являющиеся более наглядным средством представления информации. Естественно, что формы, используемые для ввода
38
документов, должны выглядеть на экране монитора точно так же, как стандартные бланки этих документов. Также важным преимуществом форм является то, что они позволяют работать не с одной, а с несколькими связанными таблицами, что, в свою очередь, увеличивает наглядность.
Пользователю приложения нет необходимости знать, что такое Visual FoxPro, какие команды используются для добавления или удаления записей в таблицах. Он может даже вообще не знать, с помощью каких программных средств создавалось приложение. Для него главным является перемещение по таблице, добавление новых записей, редактирование и удаление имеющихся.
Рисунок 4.1 – Отображение информации в виде формы
На рисунке 4.1 показана форма, предназначенная для ввода и просмотра списка заказчиков фирмы.
При создании форм в Visual FoxPro разработчик может использовать следующие средства:
Form Wizard – мастер форм;
Form Builder – построитель формы;
Builder – построитель объектов формы;
AutoFormat Builder – построитель автоформата;
Form Designer – конструктор форм.
Чтобы создать форму для одной или нескольких связанных таблиц с
39
возможностью задания отображаемых в форме полей, стиля их отображения и указания типа кнопок управления, можно использовать мастер создания форм.
Для самостоятельной разработки формы с заданными свойствами или изменения формы, созданной с помощью мастера, следует воспользоваться
конструктором форм.
Чтобы разместить в конструкторе форм поля и надписи, оформленные в соответствии с выбранным стилем, можно прибегнуть к помощи построителя формы. Помимо этого, в конструкторе форм для большинства объектов (полей, списков, переключателей, таблиц и т. д.) существуют построители, позволяющие размещать в форме заданные объекты и настраивать их свойства. Кроме того, в Visual FoxPro имеется построитель автоформата, с помощью которого можно задать одинаковый стиль оформления выделенных элементов формы.
Рассмотрим создание формы с помощью Form Wizard (Мастер форм). Он позволяет создавать формы как для одиночных, так и для связанных таблиц, а также настраивать поля, стиль их отображения и тип кнопок управления, размещаемых в форме. Форма, созданная с помощью мастера, позволяет просматривать и редактировать информацию, содержащуюся в таблицах Visual FoxPro. Она содержит в нижней части кнопки для выбора режима просмотра, добавления и удаления записей, сохранения введённой информации и печати данных.
Для запуска мастера выполните одно из перечисленных ниже действий.
Выберите в меню Tools (Сервис) команду Wizards (Мастера), а затем в открывшемся подменю значение Form (Форма).
Нажмите кнопку Form Wizard (Мастер формы) в диалоговом окне New Form (Новая форма), которое открывается в окне проекта при создании новой формы.
Нажмите кнопку Wizard (Мастер) в диалоговом окне New (Новый), которое открывается при нажатии кнопки New (Новый) стандартной панели инструментов или выборе команды New (Новый) меню File (Файл).
Рассмотрим создание формы с помощью мастера из окна проекта:
1.Откройте базу данных проекта. При этом на стандартной панели инструментов в списке Databases (Базы данных) появится название открытой базы данных.
2.На вкладке Documents (Документы) окна конструктора проекта выберите
40