Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2.1.Создание проекта

.doc
Скачиваний:
34
Добавлен:
08.02.2016
Размер:
4.32 Mб
Скачать

ГЛАВА 2. СОЗДАНИЕ

Создание полноценной базы данных заключается в создании таблиц, связей, форм, макросов, запросов, отчетов, меню, справочной системы и инсталляционного пакета.

После анализа предметной области были выделены 8 таблиц, а именно: «Клиенты», «Сотрудники», «Туроператоры», «Паспорт», «Путевки», «Транспорт», «Заявки», «Адрес».

2.1. Создание проекта «Турагентство»

Проект − это уникальный набор процессов, состоящих из скоординированных и управляемых задач, предпринятых для достижения цели.

Проект содержит базу данных, которая состоит из 8-ми таблиц, связанных по ключевым полям. В FoxPro существуют три типа ключевых полей:

Для создания проекта в FoxPro Visual Studio 9.0 после запуска программы и закрытия стартового окна на вкладке File был выбран пункт New. В появившемся окне был выбран пункт Project, а затем нажата кнопка New file. Далее в появившемся окне было введено название проекта и путь сохранения («Turagentstvo» и «C:\Turagentstvo\» соответственно), что представлено на рисунке 2.1. Затем была нажата кнопка Сохранить.

Рисунок 2.1 – Создание проекта

В следующем окне был выбран пункт Data→Databases и нажата кнопка New…, что представлено на рисунке 2.2.

Рисунок 2.2 – Окно Project Manager

В следующем окне была нажата кнопка New Database, в появившеся следом – было выбрано название Turagentstvo и путь её сохранения C:\Turagentstvo\.

В окне Project Manager был выбран пункт Data→Databases→turagentstvo→Tables, а затем New…. В появившемся окне была нажата кнопка New Table. На следющем шаге создания таблицы Клиенты был выбран путь сохранения и название таблицы (klienty и C:\Turagentstvo\). На следующем шаге в окне Table Designer были созданы поля таблицы, которые заполнены соласно таблице 2.1. Ключевые поля были созданы путем выбора «↑Ascending» в выпадающем списке поля Index. Тип индекса был выбран из выпадающего списка поля Type на вкладке Indexes.

Таблица 2.1 – Описание полей таблицы «Клиенты»(« klienty»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_klienta

целочисленный (Integer)

4

Код клиента

Primary

fam

символьный (Character)

15

Фамилия

ima

символьный (Character)

15

Имя

otch

символьный (Character)

15

Отчество

tel

символьный (Character)

17

Телефон

id_adr

целочисленный (Integer)

4

Код адреса

Regular

id_pasp

целочисленный (Integer)

4

Код паспорта

Regular

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Сотрудники»(«sotrudniki»), характеристики полей которой представлены в таблице 2.2.

Таблица 2.2 – Описание полей таблицы «Сотрудники»(«sotrudniki»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_sotr

целочисленный (Integer)

4

Код сотрудника

Primary

fam

символьный (Character)

15

Фамилия

ima

символьный (Character)

15

Имя

otch

символьный (Character)

15

Отчество

tel

символьный (Character)

17

Телефон

id_adr

целочисленный (Integer)

4

Код адреса

Regular

id_pasp

целочисленный (Integer)

4

Код паспорта

Regular

inn

символьный (Character)

10

ИНН

dol

символьный (Character)

25

Должность

data_trud

дата (Data)

8

Дата трудоустр.

okl

вещественный (Float)

10

Оклад

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Туроператоры»(«turoperatory»), характеристики полей которой представлены в таблице 2.3.

Таблица 2.3 – Описание полей таблицы «Туроператоры»(«turoperatory»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_tur

целочисленный (Integer)

4

Код туроператора

Primary

fam

символьный (Character)

15

Фамилия

ima

символьный (Character)

15

Имя

otch

символьный (Character)

15

Отчество

tel

символьный (Character)

17

Телефон фирмы

id_adr

целочисленный (Integer)

4

Код адреса

Regular

opis

заметка (Memo)

4

Описание фирмы

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Путевки»(«putevky»), характеристики полей которой представлены в таблице 2.4.

Таблица 2.4 – Описание полей таблицы «Путевки»(«putevky»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_putevky

целочисленный (Integer)

4

Код путевки

Primary

id_tur

целочисленный (Integer)

4

Код туроператора

Regular

nazvanie

символьный (Character)

15

Название

opisanie

заметка (Memo)

4

Описание

dlit

целочисленный (Integer)

17

Длительность

stoim

вещественный (Float)

10

Стоимость

id_adr

целочисленный (Integer)

4

Код адреса

Regular

kol_vo

целочисленный (Integer)

4

Количество

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Транспорт»(«transport»), характеристики полей которой представлены в таблице 2.5.

Таблица 2.5 – Описание полей таблицы «Транспорт»(«transport»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_transport

целочисл. (Integer)

4

Код транспорта

Primary

otpravlen

дата и время (DataTime)

8

Дата и время отпр.

id_adr_otpr

целочисл. (Integer)

4

Код транспорта отпр.

Regular

pribitie

дата и время (DataTime)

8

Дата и время приб.

id_adr_prib

целочисл. (Integer)

4

Код транспорта приб.

Regular

stoim

вещественный (Float)

10

Стоимость

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Заявки»(«zaiavky»), характеристики полей которой представлены в таблице 2.6.

Таблица 2.6 – Описание полей таблицы «Заявки»(«zaiavky»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_zaiavky

целочисленный (Integer)

4

Код заявки

Primary

id_klienta

целочисленный (Integer)

4

Код клиента

Regular

id_sotr

целочисленный (Integer)

4

Код сотрудника

Regular

id_put

целочисленный (Integer)

4

Код путевки

Regular

data_oforml

дата (Data)

8

Дата оформления

id_tr_otpr

целочисленный (Integer)

4

Код трансп. отпр.

Regular

id_tr_prib

целочисленный (Integer)

4

Код трансп. приб.

Regular

stoim

вещественный (Float)

10

Стоимость

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Паспорт»(«pasport»), характеристики полей которой представлены в таблице 2.7.

Таблица 2.7 – Описание полей таблицы «Паспорт»(«pasport»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_pasport

целочисленный (Integer)

4

Код паспорта

Primary

seria

символьный (Character)

2

Серия

nomer

целочисленный (Integer)

4

Номер

kem_vidan

символьный (Character)

4

Кем выдан

data_rozd

дата (Data)

8

Дата рождения

id_adr_prop

вещественный (Float)

4

Код прописки

Regular

После создания полей таблиц была нажата кнопка ОК. Аналогичным образом была создана таблица «Адрес»(«adres»), характеристики полей которой представлены в таблице 2.8.

Таблица 2.8 – Описание полей таблицы «Адрес»(«adres»)

Название

Тип

Длинна

Подпись

Индекс

Тип индекса

id_adr

целочисленный (Integer)

4

Код адреса

Primary

gorod

символьный (Character)

15

Город

ulica

символьный (Character)

15

Улица

dom

символьный (Character)

5

Дом

kv_ofis

символьный (Character)

5

Квартира/офис

После создания таблиц двойным щелчком была открыта таблица «Клиенты» для заполнения данными. Заполненная таблица представлена на рисунке 2.3.

Рисунок 2.3 – Таблица Клиенты

Далее для заполнения двойным щелчком была открыта таблица «Сотрудники». Заполненная таблица представлена на рисунке 2.4.

Рисунок 2.4 – Таблица Сотрудники

Далее для заполнения двойным щелчком была открыта таблица «Туроператор». Заполненная таблица представлена на рисунке 2.5.

Рисунок 2.5 – Таблица Туроператор

Далее для заполнения двойным щелчком была открыта таблица «Путевки». Заполненная таблица представлена на рисунке 2.6.

Рисунок 2.6 – Таблица Путевки

Далее для заполнения двойным щелчком была открыта таблица «Транспорт». Заполненная таблица представлена на рисунке 2.7.

Рисунок 2.7 – Таблица Транспорт

Далее для заполнения двойным щелчком была открыта таблица «Заявки». Заполненная таблица представлена на рисунке 2.8.

Рисунок 2.8 – Таблица Заявки

Далее для заполнения двойным щелчком была открыта таблица «Паспорт». Заполненная таблица представлена на рисунке 2.9.

Рисунок 2.9 – Таблица Паспорт

Далее для заполнения двойным щелчком была открыта таблица «Адрес». Заполненная таблица представлена на рисунке 2.10.

Рисунок 2.10 – Таблица Адрес

Путем перетаскивания ключевого поля типа Primary на одноименное поле типа Regular, были установлены связи между таблицами базы данных. Схема связи представлена на рисунке 2.11.

Рисунок 2.11 – Схема данных

2.2. Создание форм

Для наиболее удобного просмотра имеющейся информации в базе требуется создать формы. Для этого в менеджере проекта Project Manager на вкладке Document был выбран пункт Forms и нажата кнопка New… В открывшемся окне была нажата кнопка New Form. Появившиеся следом окна представлены на рисунке 2.12.

Рисунок 2.12 – Создание формы

В окне Properties в поле Picture был выбран рисунок c:\turagentstvo\form1-2.jpg, далее на форму были помещены следующие объекты: Label – 3 шт., Command Button 2 – шт., Text Box – 2 шт. Их измененные характеристики представлены в таблице 2.9.

Таблица 2.9 – Описание полей объектов формы form1

Выбранный объект

Название поля

Значение

form1

Caption

Турагентство

Picture

c:\turagentstvo\form1-2.jpg

Label1

Caption

Логин

Label2

Caption

Пароль

Label3

Caption

Вход в систему

Label1, Label2, Label3

BackColor

177,216,218

FontSize

15

Command Button1

Caption

Вход

Command Button2

Caption

Выход

Command Button1, Command Button2

FontSize

15

Text Box1, Text Box2

FontSize

13

Полученный результат представлен на рисунке 2.13.

Рисунок 2.13 – Созданная форма «Турагентство» («form1»)

Листинг для кнопок Command Button1 и Command Button2 представлен в таблице 2.10.

Таблица 2.10 – Листинг

Command Button1

Command Button2

IF ALLTRIM(ThisForm.Edit1.Value) == "User"

IF ALLTRIM(ThisForm.Edit2.Value) <> "130493"

MESSAGEBOX("Неверный пароль")

CLEAR EVENTS

thisform.Edit1.value = ""

thisform.Edit2.value = ""

RETURN 0

ENDIF

ELSE

MESSAGEBOX ("Неверное имя пользователя")

CLEAR EVENTS

thisform.Edit1.value = ""

thisform.Edit2.value = ""

RETURN 0

ENDIF

ThisForm.Release

DO " C:\Turagentstvo\form2.scx"

IF MESSAGEBOX("Вы уверены,что хотите выйти?","Выйти")

ThisForm.Release()

QUIT

ELSE

ThisForm.Refresh()

ENDIF

При закрытии формы, она была сохранена по адресу C:/Turagentstvo/form1.scx под именем «form1».

Далее аналогично была создана форма «Оглавление» (form2), которая имеет пять объектов Command Button и одного Label. Характеристика полей объектов представлена в таблице 2.11.

Таблица 2.11 – Описание полей объектов формы form2

Выбранный объект

Название поля

Значение

form2

Caption

Оглавление

Picture

c:\turagentstvo\form2-2.jpg

Label1

Caption

Оглавление

FontSize

15

Command Button1

Caption

Клиенты

Command Button2

Caption

Сотрудники

Command Button3

Caption

Туроператоры

Command Button4

Caption

Путевки

Command Button5

Caption

Заявки

Command Button1, Command Button2, Command Button3, Command Button4, Command Button5

FontSize

15

Листинг для кнопок Command Button представлен в таблице 2.12.

Таблица 2.12 – Листинг

Command Button1

Command Button2

DO " C:\Turagentstvo\form3.scx"

DO " C:\Turagentstvo\form4.scx"

Command Button3

Command Button4

DO " C:\Turagentstvo\form5.scx"

DO " C:\Turagentstvo\form6.scx"

Command Button5

DO " C:\Turagentstvo\form7.scx"

Следующая форма создавалась путем выбора пункта Documents-Forms в окне Project Manager. Затем после нажатия кнопки New…, в новом окне была нажата кнопка Form Wizard, а затем был выбран пункт One-To-Many Form Wizard и нажата кнопка ОК. Далее была выбрана таблица Заявки и из нее было выбрано поле Код клиента и нажата кнопка Next>, что представлено на рисунке ___.