Дипломная работа: Автоматизация документооборота "Подразделений ФАО "Связьтранснефть"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
62
разработки.
Рис. 2.11. Модуль uDM в среде RAD Studio Delphi
В таблице 2.19 представлено описание компонентов, используемых для
работы данного модуля.
Таблица 2.19
Описание компонентов модуля uDM
Компонент Описание
MainConnect Компонент класса TADOConnection, предназначен для
связи с базой данных по технологии ADO.
tblClient
Компоненты класса TADOTable, предназначены для
работы с таблицами базы данных.
tblDirection
tblStat
tblWorks
tblWorker
tblPerform
tblProject
tblSystems
63
Компонент Описание
tblHardware
tblFoundation
tblCabel
tblLink
tblHard1
tblHard2
tblGraph
tblViewWorker
tblViewHardware
tblViewFoundament
tblViewCabel
qryReport Компонент класса TADOQuery, предназначен для
выполнения запросов к базе данных на языке SQL.
qryStatFilter
qryClientFilter
qryDirectionFilter
dsClient
Компоненты класса TDataSource, требуются для связи
между визуальными компонентами и компонентами
данных.
dsDirection
dsStat
dsWorks
dsWorker
dsPerform
dsProject
dsSystems
dsHarware
dsFoundament
dsCabel
dsLink
dsHard1
dsHard2
dsGraph
64
Компонент Описание
dsViewWorker
dsViewHardware
dsViewFoundament
dsViewCabel
dsStatFilter
dsClientFilter
dsDirectionFilter
Для формирования отчётностей разработаны запросы к базе данных.
Для журнала оборудования разработан следующий запрос:
«select
h.Indexx as [Индекс]
, h.Weights as [Вес]
, w.Name as [Работа]
, wr.Name as [Исполнитель]
, (case when isnull(g.Finish,0)=1 then g.DateFinish else '' end) as
[Дата окончания]
, (case when isnull(g.OverClient,0)=1 then g.DateOver else '' end) as
[Дата сдачи]
from Hardware h
inner join Systems s on s.ID=h.Systems
inner join Graph g on g.Hardware=h.ID
inner join Works w on w.ID=g.Works
left join Worker wr on wr.ID=g.Worker
where s.Project=:ProjectID».
Для журнала фундамента разработан запрос:
«select
f.Indexx as [Индекс]
, f.Weights as [Вес]
, h.Indexx as [Индекс оборудования]
, w.Name as [Работа]
65
, wr.Name as [Исполнитель]
, (case when isnull(g.Finish,0)=1 then g.DateFinish else '' end) as
[Дата окончания]
, (case when isnull(g.OverClient,0)=1 then g.DateOver else '' end) as
[Дата сдачи]
from Foundament f
inner join Hardware h on h.ID=f.Hardware
inner join Systems s on s.ID=h.Systems
inner join Graph g on g.Foundament=f.ID
inner join Works w on w.ID=g.Works
left join Worker wr on wr.ID=g.Worker
where s.Project=:ProjectID».
Для кабельного журнала разработан запрос:
« select
c.Indexx as [Индекс]
, c.Mark as [Маркировка]
, c.Lengths as [Длина]
, c.Descriptions as [Описание]
, h1.Indexx as [Индекс оборудования 1]
, h2.Indexx as [Индекс оборудования 2]
, w.Name as [Работа]
, wr.Name as [Исполнитель]
, (case when isnull(g.Finish,0)=1 then g.DateFinish else '' end) as
[Дата окончания]
, (case when isnull(g.OverClient,0)=1 then g.DateOver else '' end) as
[Дата сдачи]
from Cabel c
inner join Systems s on s.ID=c.Systems
inner join Link l1 on (l1.Cabel=c.ID) and (l1.TypeLink=0)
inner join Hardware h1 on h1.ID=l1.Hardware
inner join Link l2 on (l2.Cabel=c.ID) and (l2.TypeLink=1)
inner join Hardware h2 on h2.ID=l2.Hardware
66
inner join Graph g on g.Cabel=c.ID
inner join Works w on w.ID=g.Works
left join Worker wr on wr.ID=g.Worker
where s.Project=:ProjectID».
Для отчёта о проектах по заказчику разработан запрос:
«select
p.Name as [Проект]
, p.DateStart as [Дата начала]
, d.Name as [Направление]
, c.Name as [Заказчик]
, s.Name as [Статус]
,(case when isNull(p.Finish,0)=0 then p.DateFinish else '' end) as
[Дата окончания]
from Project p
inner join Client c on c.ID=p.Client
inner join Stat s on s.ID=p.Stat
inner join Direction d on d.ID=p.Direction
where p.Client=:ClientID».
Для отчёта о проектах за период разработан запрос:
«select
p.Name as [Проект]
, p.DateStart as [Дата начала]
, d.Name as [Направление]
, c.Name as [Клиент]
, s.Name as [Статус]
,(case when isNull(p.Finish,0)=0 then p.DateFinish else '' end) as
[Дата окончания]
from Project p
inner join Client c on c.ID=p.Client
inner join Stat s on s.ID=p.Stat
inner join Direction d on d.ID=p.Direction
where p.DateStart between :sDate and :eDate».
Источник: https://baza.diplomsite.ru/previewfile/1756