Описание базы данных
Прежде чем приступать к разработке программы, необходимо спроектировать базу данных, в которой будут находиться наши данные. БД, переведенная в формат MS Access, называется EducationCenter. В учебном центре обучаются клиенты (слушатели) на разных направлениях (администрирование, программирование, графика, офисные курсы и т. д.), и у каждого направления есть свои курсы. Офис-менеджер регистрирует клиентов в базе данных и добавляет их в группы. Группы могут иметь статус набираемых, обучаемых и закончивших обучение. Итоговые суммы доходов и расходов помещаются в отдельную таблицу. База данных также содержит информацию о сотрудниках.
База данных EducationCenter находится в каталоге (Code\Glava11\ EducationCenter).
В таблицах 11.1–11.14 приводится описание таблиц в БД и структура каждой таблицы.
Таблица
11.1.
Описание таблиц
| № |
Таблица |
Описание |
| 1 |
Clients |
Данные клиентов |
| 2 |
Course |
Описание курсов в учебном центре |
| 3 |
Data |
Таблица итоговых сумм (прихода и расхода) за день |
| 4 |
Directions |
Описание направлений курсов |
| 5 |
Employees |
Данные о сотрудниках учебного центра |
| 6 |
Expenses |
Денежные расходы |
| 7 |
Group_clients |
Промежуточная таблица для групп и клиентов |
| 8 |
Groups |
Данные о группах |
| 9 |
GroupStatus |
Состояния групп |
| 10 |
Income
|
Денежные приходы |
| 11 |
Payment_type |
Виды оплат |
| 12 |
PlanRealization |
Разницы между суммой прихода и реализованной суммой |
| 13 |
RealizedTable |
Реализованные деньги клиентов |
Структура таблиц
Таблица
11.2.
Clients
| Поле |
Тип данных |
Описание |
| ClientID |
Счетчик |
Номер клиента |
| Fname |
Текстовый |
Имя |
| Lname |
Текстовый |
Фамилия |
| FathName |
Текстовый |
Отчество |
| LinkData |
Текстовый |
Контактные данные |
| Recorddate |
Дата/Время |
Дата записи |
| Note |
Текстовый |
Заметки |
| PaymentType |
Текстовый |
Вид оплаты |
| IsRinged |
Логический |
Был ли оповещен клиент по телефону |
Таблица
11.3.
Course
| Поле |
Тип данных |
Описание |
| CourseID |
Счетчик |
Номер курса |
| CourseName |
Текстовый |
Название курса |
| PriceText |
Текстовый |
Цена в виде текста |
| DirectionID |
Числовой |
Номер направления |
| PriceNumber |
Числовой |
Цена курса |
| Note |
Текстовый |
Заметки по курсу |
Таблица
11.4.
Data
| Поле |
Тип данных |
Описание |
| DataID |
Счетчик |
Номер |
| CurrentDate |
Дата/Время |
Текущая дата |
| amountYesterday |
Денежный |
Всего вчера |
| AmountToday |
Денежный |
Всего сегодня |
| IncomeToday |
Денежный |
Приход на сегодня |
| expanseToday |
Денежный |
Расход на сегодня |
| Note |
Текстовый |
Заметки |
Таблица
11.5.
Directions
| Поле |
Тип данных |
Описание |
| DirectionID |
Счетчик |
Номер направления |
| DirectName |
Текстовый |
Наименование направления |
| Note |
Текстовый |
Заметки |
Таблица
11.6.
Employees
| Поле |
Тип данных |
Описание |
| EmployeeID |
Счетчик |
Номер сотрудника |
| LastName |
Текстовый |
Фамилия |
| FirstName |
Текстовый |
Имя |
| FatherName |
Текстовый |
Отчество |
| LinkData |
Текстовый |
Контактные данные |
| BirthDay |
Дата/Время |
Дата рождения |
| DirectionID |
Числовой |
Номер направления |
| Address |
Текстовый |
Адрес |
| Notes |
Текстовый |
Заметки |
Таблица
11.7.
Expenses
| Поле |
Тип данных |
Описание |
| ExpenseID |
Счетчик |
Номер расхода |
| DataID |
Числовой |
Номер даты |
| Note |
Текстовый |
Заметки |
| Summa |
Денежный |
Сумма прихода |
| ClientID |
Числовой |
Номер клиента |
| EmployeeID |
Числовой |
Номер сотрудника |
| payment_typeID |
Числовой |
Номер вида оплаты |
Таблица
11.8.
Group_clients
| Поле |
Тип данных |
Описание |
| GroupClientID |
Счетчик |
Номер |
|
GroupID
|
Числовой |
Номер группы |
| ClientID |
Числовой |
Номер клиента |
| IsPaid |
Логический |
Оплатил |
| Notes |
Текстовый |
Заметки |
Таблица
11.9.
Groups
| Поле |
Тип данных |
Описание |
|
GroupID
|
Счетчик |
Номер группы |
| BeginDate |
Дата/время |
Дата начала обучения |
| EndDate |
Дата/время |
Дата конца обучения |
| BeginTime |
Дата/время |
Время начала обучения |
| EndTime |
Дата/время |
Время конца обучения |
| ClientsCount |
Числовой |
Кол-во клиентов в группе |
| ClassNumber |
Числовой |
Номер класса |
| CourseID |
Числовой |
Номер курса |
| EmployeeID |
Числовой |
Номер преподователя в группе |
| Note |
Текстовый |
Заметки |
| StatusID |
Числовой |
Номер статуса группы |
Таблица
11.10.
GroupStatus
| Поле |
Тип данных |
Описание |
| StatusID |
Счетчик |
Номер статуса |
| StatusName |
Текстовый |
Наименование |
Таблица
11.11.
Income
| Поле |
Тип данных |
Описание |
| IncomeID |
Счетчик |
Номер прихода |
| IsRealized |
Логический |
Сумма реализована |
| DataID |
Числовой |
Номер даты |
| Summa |
Денежный |
Сумма прихода |
| payment_typeID |
Числовой |
Номер вида оплаты |
| Note |
Текстовый |
Заметки |
| ClientID |
Числовой |
Номер клиента |
Таблица
11.12.
Payment_type
| Поле |
Тип данных |
Описание |
| payment_typeID |
Счетчик |
Номер вида оплаты |
| payment_typeName |
Текстовый |
Вид оплаты |
| Note |
Текстовый |
Заметки |
Таблица
11.13.
PlanRealization
| Поле |
Тип данных |
Описание |
| ID |
Счетчик |
Номер записи |
| IncomeID |
Числовой |
Номер прихода |
| SummaPlan |
Денежный |
Запланнированная сумма |
|
SummaRealization
|
Денежный |
Реализованная сумма |
| IsRealized |
Логический |
Реализовано |
| DateRealization |
Дата/время |
Дата реализации |
| Cause |
Текстовый |
Причина реализации |
Таблица
11.14.
RealizedTable
| Поле |
Тип данных |
Описание |
| ID |
Счетчик |
Номер записи |
| RealizedSumm |
Денежный |
Сумма реализации |
| RealizingDate |
Дата/время |
Дата реализации |
| Note |
Текстовый |
Заметки |
| ClientID |
Числовой |
Номер клиента |
Схема связи таблиц в БД
Схема связей таблиц приводится на рис. 11.25. Лучше всего открыть файл базы данных и изучить связи в окне схемы баз данных MS Access.
Разработка приложения
Перейдем теперь непосредственно к приложению. В таблицах 11.15 и 11.16 приводится описание классов, используемых во всем приложении.
Таблица
11.15.
Список классов, управляющих формами
| Имя класса |
Описание класса |
| frmManager |
Управляет главной формой |
| frmAuthorization |
Форма авторизации |
| frmDirection |
Форма направления |
| frmCourse |
Форма курса |
| frmGroup |
Форма группы |
| frmClient |
Форма клиента |
| frmSearchClient |
Форма поиска клиента |
| frmEmployee |
Форма сотрудников |
| frmPaymentType |
Форма оплат |
Таблица
11.16.
Список дополнительных классов
| Имя класса |
Описание класса |
| ManagerTreeNode |
Абстрактный класс узла дерева в проводнике |
| ClientTreeNode |
Класс клиента в проводнике |
| GroupTreeNode |
Класс группы в проводнике |
| CourseTreeNode |
Класс курса в проводнике |
| DirectionTreeNode |
Класс направления в проводнике |
| CustomListItem |
Класс, представляющий item в ListView проводника |