Материал: Автоматизация управления персоналом в АО "Региональные электрические сети"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
п/п
Наименование модуля
Функции модуля
3
Модуль системной логики
Содержит в себе иерархию подчиняющихся форм
приложения, что обеспечивает логичную и
интуитивно понятную программную навигацию
4
Модуль подключения к БД
Отвечает за обеспечение связи приложения с БД
MS SQL Server 2008 R2.
5
Модуль взаимодействия с БД
Отвечает за выполнение запросов к БД и
предоставление для других модулей АИС
унифицированных процедур для выполнения
основных операций над данными: чтение, запись,
изменение, удаление.
6
Модуль пользовательского
интерфейса
Содержит функции, включающие:
Формирование пользовательского интерфейса
согласно хранимым шаблонам
Вообще, данное разделение больше логическое, чем физическое, поскольку в
реальности присутствуют несколько десятков файлов, каждый из которых отвечает за
определенный набор специфических функций. Однако все эти файлы могут быть
разделены на логические группы, представленные в таблице выше.
Поэтому для более полной информации о структурной схеме пакета приведем
структуру каталогов (рисунок 2.19).
Рисунок 2.19 – Структурная схема пакета
2.2.4 Описание программных модулей
Отметим вначале, что существуют стандартные операции над данными, так называемый
CRUD:
создание;
чтение;
изменение;
удаление;
Данные для нашей АИС хранятся в базе данных. Интерфейс взаимодействия с БД
предоставляет СУБД MS SQL Server 2008 R2.
Наша задача – сформировать некие стандартизированные механизмы управления
потоками данных в приложении, чтобы, во-первых, не дублировать код, во-вторых,
обеспечить логичную цепочку передачи сообщений по каналам управления.
Для начала необходим класс, который будет обеспечивать подключение к базе данных
и предоставлять соединение с ней по мере необходимости. Таким классом является
DB_Connection (приложение А).
Для доступа к базе данных и для выполнения операций CRUD разработан специальный
класс DB_Access. Он может сообщить любому модулю АИС текущее соединение с БД, а
также выполнить тот или иной запрос к базе данных. Алгоритм выполнения функции SQL
запроса представлен на рисунке 2.20.
Рисунок 2.20 – Алгоритм выполнения SQL запроса
Первоначально происходит проверка подключения к БД. Если оно отсутствует, то
вызывается функция восстановления подключения.
Затем происходит инициализация объекта SQLCeCommand встроенный объект,
обеспечивающий интерфейс взаимодействия с БД.
Затем в этот созданный объект записываются параметры запроса и происходит его
выполнение.
Далее в цикле проходят по строкам, а в каждой строке проходят по ячейкам (столбцам),
и записывают выходные значения в массив.
После закрывают подключение к БД.
Текст функции sqlquery представлен в приложении А. Видно, что для возврата
результата запроса модулям используется динамический список списков строк
(List<List<string>> sqlresult). Это эффективный и удобный способ передать обратно в
программу таблицу, которую вернет запрос SELECT. Для запросов, которые не должны
возвращать значений, эта структура просто не заполняется. Таким образом, мы
определили единственную в программе точку доступа к БД, и все модули будут
взаимодействовать с БД именно через эту функцию.
Отметим еще немаловажную особенность разработанного ПО. Поскольку работа с БД
постоянно подразумевает отображение результатов в таблицах, то также были
спроектированы стандартизированные функции, которые позволяют привязать таблицу
БД к таблице на форме оконного интерфейса приложения.
Приведем пример вызова такой функции (приложение А):
Здесь функция выводит информацию по работникам компании на основании
должностей и штатного расписания, таким образом, комбинируя таблицы и получая
единую выборку с интересующими нас данными. Функция showSQLinGridView позволяет
не только подключить результат запроса к таблице, но еще и обеспечит переименование
заголовка таблицы под интересующий нас шаблон, а также функция может скрыть
определенные столбцы в таблице (например, поле ID).
Таким образом, не нужно каждый раз писать много кода по связке таблицы с базой
данных, достаточно лишь вызвать стандартизированную функцию showSQLinGridView().
В нашей программе присутствует большое число справочников. Программировать
каждый справочник и его интерфейс очень тяжело, поэтому было принято решение о
стандартизации отображении справочника в системе. Любой документ, повывший в
раздел «Справочники», должен обладать такими полями:ID, Code, Value, Info.
Это позволит автоматически генерировать окна и интерфейсы всех справочников один
небольшим «куском» кода.
Например, так инициализированы справочники в системе (приложение А):
Это хэш, ключами которого являются имена таблиц в БД, а значениями являются имена
таблиц в пользовательском интерфейсе WindowsForms.
Для хранения ссылок на справочники применяется объект ToolStripMenu, который
позволяет автоматически генерировать пункты меню программы (приложение А).
Поэтому, обходя кэш, генерируем пункты меню:
В результате, каждый справочник вызывается одной лишь функцией (приложение А):
Тэг хранит имя таблицы БД, а текст – имя таблицы для пользователя.
Программа также в рамках обеспечения взаимодействия с другими отделами, например,
бухгалтерии, автоматически может сгенерировать, например, приказ о зачислении на
работу или увольнение сотрудника.
Для этих целей используется специальный класс excel, через который приложение
может читать и писать информацию в файлы .xls.
Отдельно надо указать разграничение прав доступа (таблица 2.3).
Таблица 2.3
Разграничение прав доступа к АИС
Отделы
Работники
Расписание
Справочники
Приказы
Позиция 1
Позиция 2
Позиция 3
Позиция 4
Позиция 5
Начальник
отдела кадров
+
+
+
+
+
Старшие
менеджеры
+
+
+
+
+
Менеджеры
+
+
+
+
Главный
бухгалтер
+
+
Бухгалтер
+
Остальные
работники
предприятия
В базе данных имеется таблица users, которая хранит всех валидных пользователей
АИС. Имеется суперадмин, который может создавать, удалять и редактировать других
пользователей (включая назначение им прав доступа к компонентам АИС).
При создании той или иной формы программа проверяет, обладает ли пользователь,
вошедший в систему, правом доступа к данному компоненту.
Таким образом, рассказаны основные особенности разработанной АИС.
2.3 Контрольный пример реализации проекта и его описание
Итак, при запуске программы появляется окно авторизации. В таблице 2.21
представлено разграничение прав доступа. Покажем полный функционал системы, введя
при авторизации параметры начальника отдела кадров.
Рисунок 2.21 – Окно авторизации
Источник: https://baza.diplomsite.ru/previewfile/2255