При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан. Затем: Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз. |
Финальный проект — программа education center
Когда вы заканчиваете изучать очередной учебник по программированию, даже как следует разобравшись со всеми его примерами, вы задаетесь вопросом — как же научиться собирать все эти детали мозаики в целое, из чего и состоят программы? Эта лекция целиком посвящена достаточно сложной программе Education center, используемой на практике в крупном учебном центре для организации его деятельности. Почему же решено было написать свою программу, а не воспользоваться одним из существующих пакетов делопроизводства, например, мощным пакетом "1С Бухгалтерия"? Дело в том, что была необходимость в создании программы с предельно ясным и понятным интерфейсом, различным для трех групп пользователей — администраторов, менеджеров или операторов. В программе есть три группы пользователей:
- Administrators — администраторы, обладающие максимальным уровнем доступа.
- Managers — менеджеры, управляющие одним направлением обучения.
- Recipients — операторы, регистрирующие клиентов и вносящие данные об оплате.
Если пользователь не входит ни в одну группу, тогда он принадлежит группе FailGroup, и он не сможет запустить программу.
Открытый исходный код позволяет быстро модифицировать и изменять программу по мере необходимости. Итак, готовое решение перед вами, и если вы наберетесь терпения и до конца вникнете в его работу, а лучше — самостоятельно воспроизведете всю функциональность, то можно будет сказать, что вы отлично разобрались с теми объектами и классами, которые были приведены во всей этой книге.
Приложение в качестве базы данных использует MS SQL Server, здесь вся структура ее была сохранена, но преобразована в базу данных MS Access для облегчения локальной переносимости. Впрочем, вы без труда сможете преобразовать все подключения к базе данных в исходном виде.
Подготовка к запуску программы
Файл программы расположен в каталоге Code\Glava11\Educationcenter\Manager\bin\Debug\Manager.exe, приложение настроено на подключение к базе данных, расположенной в той же самой папке. Дополнительно, в каталоге Code\Glava11\Educationcenter\DataBase\ EducationCenter.mdb находится копия базы данных. При авторизации можно ввести любой пароль — соответствующие участки кода в форме Authorization.cs закомментированы.
Описание работы программы
При запуске программы пользователи вводят учетную запись домена и пароль. В данном случае администратор сети учебного центра создал эти группы в домене. После авторизации программа проверяет группу пользователя и определяет необходимый интерфейс (рис. 11.1).
Далее загружаются данные из БД и появляется главная рабочая форма (рис. 11.2).
На форме расположены следующие вкладки:
- "Приемная" — производится регистрация клиентов, управление группами и производятся оплаты (рис. 11.2).
- "Основные таблицы" — выводится содержимое таблиц базы (рис. 11.3).
- "Оплаты" — вывод приходов и расходов по учебному центру (рис. 11.4).
- "Проводник" — выводится иерархическая структура курсов, предлагаемых учебным центром. Также можно быстро управлять направлениями, курсами, группами и клиентами в группах (рис. 11.5).
- Статистика — здесь можно посмотреть статистику по должникам в данном направлении (рис. 11.6).
На панели инструментов расположены следующие кнопки:
- "Обновить базу данных". При нажатии на эту кнопку все изменения в текущих таблицах будут внесены в базу данных.
- "Сотрудники". При нажатии на эту кнопку появляется форма сотрудников (рис. 11.7).