Тема: Ссылочная целостность данных
Задание: создать базу данных для курсового проекта, установить в ней связь между таблицами, создать форму один ко многим с помощью Мастера.
Выполнение:
1. Создадим базу данных курсового проекта course_data, затем перейдем в окно Дизайнера базы данных и установим связи между таблицами (см.рис.2.1).
Рис.2.1. База данных курсового проекта.
Все связи между таблицами имеют тип «один-ко-многим», поэтому им необходимо присвоить правила поведения в случае ввода, удаления и корректировки записей (см.рис.2.2).
В рамках данного проекта все условия Update и Insert будут установлены в тип Ignore. Условие Delete будет определено в базе данных следующим образом: между таблицами «Доступ к базе данных»-«Журнал посещений», «Заказы»-«Операции» и «Клиенты»-«Заказы» осуществляется каскадное удаление записей в дочерней таблице при удалении записи с соответствующим ключом в родительской, все остальные условия удаления установлены в тип Restrict, чтобы избежать потерь информации.
Рис.2.2. Конструктор ссылочной целостности данных.
2. Создадим с помощью Мастера форму, где будет размещены две таблицы sotrudniki и dolgnosty из вспомогательного проекта Prog1.pjx для просмотра динамики их взаимодействия. Между таблицами есть связь «один-ко-многим» и они принадлежат базе данных data1 (см.рис.2.3).
Рис.2.3. База данных data1.
На 1-м шаге создания формы с помощью Мастера в качестве родительской таблицы-источника выберем все поля из таблицы dolgnosty, на 2-м в качестве дочерней таблицы-источника – все поля таблицы sotrudniki. На 3-м шаге определим способ соединения таблиц – по полю dolg_id. На 4-м шаге определим стиль оформления формы и кнопок управления, на 5-м – тип сортировки записей (по полю dolg_id).
Рис.2.4. Результат запуска и использования формы «один-ко-многим».
ЛАБОРАТОРНАЯ РАБОТА № 3.
Тема: Объекты Visual Fox Pro. Свойства, события, методы
Часть 1).
Задание: рассмотреть создание объектов базовых классов СУБД, их свойства, методы, события.
Выполнение:
1. Рассмотрим базовый класс Form. Для этого создадим в проекте новую форму и перейдем в режим Конструктора (см.рис.3.1).
Рис.3.1. Дизайнер форм.
Исследуем свойства формы. Установим цвет фона – Backcolor – 128,128,255 (синий), заголовок - Caption – Форма, высоту – Height – 250, ширину – Width – 375. Значения параметров, отвечающих за максимальные и минимальные размеры окна формы, оставим равными -1, что означает отсутствие пределов масштабирования. Наличие кнопок «Maximaze» (MaxButton)и «Minimaze» (MinButton)на форме обеспечим, оставив значения этих параметров в «True». В результате получим следующую форму:
Рис.3.2. Форма после редактирования.
2. Исследуем базовый класс Label. Поместим на предварительно созданную форму (см. Лабораторную работу №4) на первую страницу объекта класса Pageframe (см.далее) несколько элементов Label, отредактируем их: свойство для определения шрифта FontName = Arial,свойство для определения размера шрифта FontSize = 12, свойство для придания тексту тени FontShadow = T, свойство для определения цвета BackColor = 0 (прозрачный), свойство для определения цвета текста ForeColor = 55,0,0 (коричневый), свойство для выделения текста жирным FontBold = T.
3. Исследуем базовый класс Editbox. Установим несколько объектов ввода данных на предварительно созданную форму, их свойствa ConrolSource установим в workers.emp_id, workers.firstname, workers.midname, workers.lastname, workers.emp_adress workers.emp_phone_numb. Результат действия объектов представлен ниже (см.рис.3.4).
4. Исследуем базовый класс Combobox. Назначим установленному на форму объекту Combo1 в качестве источника данных RowSource поле position из таблицы positions, в качестве источника управления ControlSource – поле pos_id из таблицы workers. Тип источника данных RowSourceType установим в «2 - Alias». Сделаем так, чтобы при раскрытии списка поле элемента было пустым.
Рис.3.3. Редактирование свойств объекта Combobox.
5. Добавим на страницу «Редактирование» объекта PageFrame1 объект русифицированного класса кнопок (см. Лабораторную работу №4). Результат выполнения части задания на лабораторную работу представлен на рис.3.4, иллюстрирующем добавление записи в таблицу сотрудников курсового проекта:
Рис.3.4. Форма с объектами в действии.
6. Исследуем базовый класс Pageframe. Установим объект Pageframe1 на предварительно созданную форму form3, установим его количество страниц (свойство PageCount = 4) и дадим каждой странице заголовок, изменив их свойство Caption (см.рис.3.5).
Рис.3.5. Объект класса Pageframe.
7. Исследуем базовый класс Image. Разместим на 3-й странице «Галерея» объект Image1, установим его свойство Picture, прописывающее путь к файлу-картинке (см.рис.3.6), и свойство Stretch в значение “1 – Isometric”, что означает, что картинка сохранит пропорции при отображении в границах заданной области.
Рис.3.6. Объект класса Image.
8. Исследуем базовый класс Command Button. Разместим на 2-й странице «Отчеты» объект Command1, зададим имя кнопки «Форма Лаба 3» с помощью свойства «Caption» и функциональность с помощью текста процедуры «Command1.Click» (см.рис.3.7). Для этого дважды щелкнем по элементу «Command button», и в появившемся окне «Command1.Click» зададим текст процедуры (см.листинг 3.1).
Листинг 3.1. Процедура «Command1.Click».
DO FORM 'D:\Militsina\Forms\form1'
thisform.Release
Рис.3.7. Объект класса Command button.
ЛАБОРАТОРНАЯ РАБОТА №4.