Опубликован: 11.09.2006 | Уровень: специалист | Доступ: платный
Лекция 11:

Финальный проект — программа education center

< Лекция 10 || Лекция 11: 1234567891011

Описание базы данных

Прежде чем приступать к разработке программы, необходимо спроектировать базу данных, в которой будут находиться наши данные. БД, переведенная в формат 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.

Схема базы данных EducationCenter

увеличить изображение
Рис. 11.25. Схема базы данных EducationCenter

Разработка приложения

Перейдем теперь непосредственно к приложению. В таблицах 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 проводника
< Лекция 10 || Лекция 11: 1234567891011
Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/

Иван Циферблат
Иван Циферблат
Россия, Таганрог, 36, 2000