Материал: Автоматизация процессов управления в ИТ отделе финансовой компании

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
75
uMain
uSchedule uInstructionuPersonal uLibraryuActor
uPass uListIncidentuJob
uDM
uReport
uLogin
uUsr
Рис. 2.7. Схема программных модулей
2.3.4 Описание программных модулей
Краткое описание программных модулей представлено в таблице 2.21.
Таблица 2.21
Краткое описание модулей АС ОТ
Модуль
Описание
uLogin
Окно авторизации пользователя в системе.
uMain
Главное окно, обеспечивает навигацию по системе. А также
позволяет вести базу инцидентов.
uActor
Модуль для ведения базы участников инцидентов.
uSchedule
Модуль для ведения графиков медосмотров и графиков
проверок работников.
uPass
Модуль для ведения прохождения медосмотров и проверок.
76
Продолжение таблицы 2.21
uPass
Модуль для ведения прохождения медосмотров и проверок.
uInstruction
Модуль для ведения базы предписаний.
uListIncident
Модуль для формирования списка инцидентов для предписания.
uPersonal
Модуль для ведения базы персонала.
uJob
Модуль для учёта работы сотрудников.
uLibrary
Модуль для ведения справочной информации.
uUsr
Модуль редактирования прав пользователей в системе.
uReport
Модуль для формирования отчётов.
uDM
Модуль для связи с базой данных.
Для формирования отчётов были разработаны запросы к БД, запросы
реализованы в модуле uReport. Ниже представлены запросы для всех отчётов.
Для отчёта о графике медосмотров за период требуется запрос:
«select
convert(varchar,s.sDate,104) +' '+ isNull(s.Description,'') as [Осмотр]
,isNull(pr.FIO,'Не начинался') as [Работник]
,case when isNull(r.Name,'''')='''' then '''' else isNull(r.Name,'''') end as [Причина]
,case when isNull(pr.FIO,'''')='' then '''' else (case when isNull(p.PassEnd,0)=1
then '' Пройдено'' else ''Не пройдено'' end) end as [Пройдено]
from Schedule s
left join Pass p on p.Schedule=s.ID
left join Personal pr on pr.ID=p.Personal
left join Reason r on r.ID=p.Reason».
Для отчёта о графике проверок за период требуется запрос:
«select
convert(varchar,s.sDate,104) +' '+ isNull(s.Description,'') as [Проверка]
,isNull(pr.FIO,'Не начинался') as [Работник]
,case when isNull(r.Name,'''')='''' then '''' else isNull(r.Name,'''') end as [Причина]
,case when isNull(pr.FIO,'''')='' then '''' else (case when isNull(p.PassEnd,0)=1
then '' Пройдено'' else ''Не пройдено'' end) end as [Пройдено]
from Schedule s
77
left join Pass p on p.Schedule=s.ID
left join Personal pr on pr.ID=p.Personal
left join Reason r on r.ID=p.Reason».
Для отчёта о инцидентах с травмами за период требуется запрос:
«cast(i.ID as varchar(5))+'' ''+i.Name+'' ''+ti.Name as [Инцидент]
,r.Name+'' ''+p.FIO as [Участник]
from Incident i
inner join actor a on a.Incident = i.ID
inner join Personal p on p.ID=a.Personal
inner join Role r on r.ID=a.Role
left join TypeIncident ti on ti.ID=i.TypeIncident
where (i.sDate between :sdt and :edt) and (isNull(i.Travma,0)=0)
order by i.sDate».
Для отчёта о инцидентах по работнику за период требуется запрос:
«select
i.ID as [Номер]
,i.Name as [Название]
,ti.Name as [Тип]
,r.Name as [Роль]
from Incident i
inner join actor a on a.Incident = i.ID
inner join Personal p on p.ID=a.Personal
inner join [Role] r on r.ID=a.Role
left join TypeIncident ti on ti.ID=i.TypeIncident
where (a.Personal=:pr) and (i.sDate between :sdt and :edt)
order by i.sDate».
На рисунке 2.8 представлен скриншот формы в среде разработки из модуля
uReport.
78
Рис. 2.8. Снимок экрана из среды разработки в модуле uReport
2.4 Контрольный пример реализации проекта и его описание
На рисунке 2.9 представлено главного окна, разработанная в среде Delphi.
С этого окна начинается работа с системой. В верхней части окна расположена
таблица инцидентов. Нижняя часть окна – таблица участников происшествия.
79
Рис. 2.9. Главное окно
В начале работы требуется убедиться, что все справочники
актуализированы. В главном меню выбирается пункт «Справочники» в подменю
выбирается пункт, соответствующий типу справочника. Пример представлен на
рисунке 2.10.
Источник: https://baza.diplomsite.ru/previewfile/2160