RUS_-_Karejev_-_Razrabotka_Windows-prilozhenij
.pdfthis.lblName.Location = new System.Drawing.Point(16, 16); this.lblName.Name = "lblName";
this.lblName.Size = new System.Drawing.Size(144, 23); this.lblName.TabIndex = 1;
this.lblName.Text = "Имя пользователя";
//
//lblRole
this.lblRole.Location = new System.Drawing.Point(16, 48); this.lblRole.Name = "lblRole";
this.lblRole.Size = new System.Drawing.Size(144, 23); this.lblRole.TabIndex = 3;
this.lblRole.Text = "Роль пользователя";
//btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.Location = new System.Drawing.Point(192, 112); this.btnCancel.Name = "btnCancel";
this.btnCancel.TabIndex = 4; this.btnCancel.Text = "Отмена";
//
//btnEdit
this.btnEdit.Location = new System.Drawing.Point(72, 112); this.btnEdit.Name = "btnEdit";
this.btnEdit.TabIndex = 5; this.btnEdit.Text = "Изменить";
this.btnEdit.Click += new System.EventHandler(this.button2_Click);
//cmbRole
//
this.cmbRole.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbRole.Items.AddRange(new object[] {
"admin",
"manager",
"operator"});
this.cmbRole.Location = new System.Drawing.Point(176, 48); this.cmbRole.Name = "cmbRole";
this.cmbRole.Size = new System.Drawing.Size(200, 21); this.cmbRole.TabIndex = 6;
//
//lblUserName
this.lblUserName.Location = new System.Drawing.Point(176, 16); this.lblUserName.Name = "lblUserName";
this.lblUserName.Size = new System.Drawing.Size(200, 23); this.lblUserName.TabIndex = 7;
//EditUserForm
//
this.AcceptButton = this.btnEdit;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(386, 152); this.Controls.Add(this.lblUserName); this.Controls.Add(this.cmbRole); this.Controls.Add(this.btnEdit); this.Controls.Add(this.btnCancel); this.Controls.Add(this.lblRole); this.Controls.Add(this.lblName);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "EditUserForm";
this.Text = "Изменение пользователя";
this.Load += new System.EventHandler(this.EditUserForm_Load); this.ResumeLayout(false);
}
#endregion
private void button2_Click(object sender, System.EventArgs e)
{
//Устанавливаем положительный результат выполнения
//и закрываем форму.
this.DialogResult = DialogResult.OK; this.Close();
}
private void EditUserForm_Load(object sender, System.EventArgs e)
{
// При загрузке формы устанавливаем имя пользователя в //элемент управления lblUserName
lblUserName.Text = UserName;
}
}
}
Листинг 10.9.
Запустите приложение. При загрузке проверяется имя пользователя и инициализируется его роль. В зависимости от роли в приложении интерфейс изменяется следующим образом:
Если роль пользователя — admin, то ему доступна полная функциональность приложения — он может не только просматривать список пользователей, но и изменять им роли. Изменения вступают в силу после перезапуска приложения.
Если роль пользователя — manager, то он может только просматривать список существующих пользователей.
Если роль пользователя — operator, то ему недоступна функциональность приложения, однако он может видеть главную форму.
На диске, прилагаемом к книге, вы найдете приложение CustomSecurity (Code\Glava10\ CustomSecurity).
© 2003-2007 INTUIT.ru. Все права защищены.
Интернет-Университет Информационных Технологий http://www.INTUIT.ru
Создание Windows-приложений на основе Visual C#
11. Лекция: Финальный проект — программа education center: версия для печати и PDA
Для работы с данной лекцией используйте примеры.
Когда вы заканчиваете изучать очередной учебник по программированию, даже как следует разобравшись со всеми его примерами, вы задаетесь вопросом — как же научиться собирать все эти детали мозаики в целое, из чего и состоят программы? Эта лекция целиком посвящена достаточно сложной программе 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.1. Авторизация пользователя
Далее загружаются данные из БД и появляется главная рабочая форма (рис. 11.2).
увеличить изображение
Рис. 11.4. Вкладка "Оплаты"
увеличить изображение
Рис. 11.5. "Проводник"
увеличить изображение
Рис. 11.6. "Статистика"
На панели инструментов расположены следующие кнопки:
"Обновить базу данных"
. При нажатии на эту кнопку все изменения в текущих таблицах будут внесены в базу данных.
"Сотрудники"
. При нажатии на эту кнопку появляется форма сотрудников (рис. 11.7).
увеличить изображение
Рис. 11.7. Форма сотрудников
Поиск клиентов
. При нажатии на эту кнопку открывается форма поиска клиентов (рис. 11.8.)
Рис. 11.8. "Поиск клиентов"
Выбрав произвольный курс на вкладке "Приемная", можно нажатием кнопки "Создать группу" открыть форму создания новой группы (рис. 11.9 и рис. 11.10).
Рис. 11.9. Форма "Создание группы"
Рис. 11.13. "Архив"
Рис. 11.14. "Группы клиента"
Проводник позволяет просматривать, а также быстро создавать необходимые нам объекты (направления, курсы, группы, клиентов) (рис. 11.15, 11.16, 11.17).

"Приемная" — производится регистрация клиентов, управление группами и производятся оплаты (
"Основные таблицы" — выводится содержимое таблиц базы (
"Оплаты" — вывод приходов и расходов по учебному центру (
"Проводник" — выводится иерархическая структура курсов, предлагаемых учебным центром. Также можно быстро управлять направлениями, курсами, группами и клиентами в группах (
Статистика — здесь можно посмотреть статистику по должникам в данном направлении (
"Данные клиента" (
"Оплата и реализация" — учет платежей клиента (
"Архив" — данные об оплаченных и реализованных суммах клиента (
"Группы клиента" — номера групп клиента, в которых он был записан (