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

RUS_-_Karejev_-_Razrabotka_Windows-prilozhenij

.pdf
Скачиваний:
36
Добавлен:
02.02.2015
Размер:
8 Мб
Скачать
☆

this.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.2. Главное окно программы. Вкладка "Приемная"

На форме расположены следующие вкладки:

"Приемная" — производится регистрация клиентов, управление группами и производятся оплаты (рис. 11.2).

"Основные таблицы" — выводится содержимое таблиц базы (рис. 11.3).

"Оплаты" — вывод приходов и расходов по учебному центру (рис. 11.4).

"Проводник" — выводится иерархическая структура курсов, предлагаемых учебным центром. Также можно быстро управлять направлениями, курсами, группами и клиентами в группах (рис. 11.5).

Статистика — здесь можно посмотреть статистику по должникам в данном направлении (рис. 11.6).

увеличить изображение

Рис. 11.3. Вкладка "Основные таблицы"

увеличить изображение

Рис. 11.4. Вкладка "Оплаты"

увеличить изображение

Рис. 11.5. "Проводник"

увеличить изображение

Рис. 11.6. "Статистика"

На панели инструментов расположены следующие кнопки:

"Обновить базу данных" . При нажатии на эту кнопку все изменения в текущих таблицах будут внесены в базу данных. "Сотрудники" . При нажатии на эту кнопку появляется форма сотрудников (рис. 11.7).

увеличить изображение

Рис. 11.7. Форма сотрудников

Поиск клиентов . При нажатии на эту кнопку открывается форма поиска клиентов (рис. 11.8.)

Рис. 11.8. "Поиск клиентов"

Выбрав произвольный курс на вкладке "Приемная", можно нажатием кнопки "Создать группу" открыть форму создания новой группы (рис. 11.9 и рис. 11.10).

Рис. 11.9. Форма "Создание группы"

увеличить изображение

Рис. 11.10. Созданная группа добавляется в список групп В выбранную группу можно добавлять клиентов (рис. 11.10 и рис. 11.11).

Рис. 11.10. Добавление клиента в группу

увеличить изображение

Рис. 11.11. Результат добавления нового клиента

Для повторного просмотра данных клиента можно, щелкнув правой кнопкой мыши на его записи, вызвать контекстное меню и выбрать пункт "Личные данные".

На форме клиента имеются дополнительные вкладки:

"Данные клиента" (рис. 11.10).

"Оплата и реализация" — учет платежей клиента (рис. 11.12).

"Архив" — данные об оплаченных и реализованных суммах клиента (рис. 11.13). "Группы клиента" — номера групп клиента, в которых он был записан (рис. 11.14).

Рис. 11.12. "Оплата и реализация"

Рис. 11.13. "Архив"

Рис. 11.14. "Группы клиента"

Проводник позволяет просматривать, а также быстро создавать необходимые нам объекты (направления, курсы, группы, клиентов) (рис. 11.15, 11.16, 11.17).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]