Автоматизированная система анализа государственных контрактов

Разработка автоматизированной системы анализа исполнения государственных контрактов и договоров отдела информатизации Управления Федеральной службы судебных приставов. Технология создания программных средств и баз данных. Безопасность приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 11.04.2012
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

внешний ключ на таблицу PRILOZH

INTEGER

TEX_ZAD_ID

внешний ключ на таблицу TEX_ZAD

INTEGER

Таблица VID_RAB используется для хранения данных о видах работ и имеет следующие поля (таблица 5):

Таблица 5

Имя

Описание

Тип

Id

идентификатор вида работ (первичный ключ)

INTEGER

VID_RAB

вид работ

VARCHAR

NAIM_IZD

наименование изделия (вторичный ключ)

INTEGER

GOS_CONTR_ID

внешний ключ на таблицу GOS_CONTR

INTEGER

SCH_F_ID

внешний ключ на таблицу SCH_F

INTEGER

NAIM_IZD_ID

внешний ключ на таблицу SCH_F

INTEGER

Таблица TEX_ZAD используется для хранения данных о технических заданиях для будущих государственных контрактов и договоров и имеет следующие поля (таблица 6):

Таблица 6

Имя

Описание

Тип

Id

идентификатор технического задания (первичный ключ)

INTEGER

PODR

Внешний ключ на таблицу PODRAZDELENIYA

INTEGER

PREDM

Предмет договора, государственного контракта

VARCHAR

DATA_RAZM

Дата размещения заявки

DATA

DATA_RASSM

Дата рассмотрения заявки

DATA

DATA_ZAKL

Дата заключения контракта

DATA

N_KZ

Номер котировочной заявки

INTEGER

PREDM_ID

Внешний ключ на таблицу PREDM

INTEGER

N_GK_ID

Внешний ключ на таблицу GOS_CONTR

INTEGER

Таблица GOS_CONTR используется для хранения данных о государственных контрактах и имеет следующие поля (таблица 7):

Таблица 7

Имя

Описание

Тип

Id

идентификатор государственных контрактов (первичный ключ)

INTEGER

N

Номер государственного контракта

INTEGER

DATA

Дата

DATA

ISP

Исполнитель

INTEGER

VID_RAB

Вид работ

INTEGER

PODR

Подразделение

INTEGER

SUMM

Сумма

INTEGER

ISPOLN_ID

Внешний ключ на таблицу ISPOLN

INTEGER

VID_RAB_ID

Внешний ключ на таблицу VID_RAB

INTEGER

PODRAZDELENIYA_ID

Внешний ключ на таблицу PODRAZDELENIYA

INTEGER

Таблица PRILOZH используется для хранения данных о приложениях к государственным контрактам и имеет следующие поля (таблица 8):

Таблица 8

Имя

Описание

Тип

Id

идентификатор приложений

INTEGER

N_DOG

Номер договора

INTEGER

PREDM

Предмет договора

INTEGER

VID_RAB

Вид работ

INTEGER

NAIM_IZD

Наименование изделия

INTEGER

ED_IZM

Единица измерения

VARCHAR

KOL

Количество

INTEGER

STOIM

Стоимость

INTEGER

SUMM

Сумма

INTEGER

PREDM_ID

Внешний ключ на таблицу PREDMET

INTEGER

VID_RAB_ID

Внешний ключ на таблицу VID_RAB

INTEGER

Таблица SCH_F используется для хранения данных о счет-фактурах и имеет следующие поля (таблица 9):

Таблица 9

Имя

Описание

Тип

Id

идентификатор счет-фактур

INTEGER

N_SCH_F

Номер счет-фактуры

INTEGER

N_AKTA

Номер акта

INTEGER

N_DOG

Номер договора

INTEGER

DATA

Дата

ISP

Исполнитель

INTEGER

PODR

Подразделение

INTEGER

KOL

Количество

INTEGER

VID_RAB

Вид работ

INTEGER

NAIM_IZD

Наименование изделия

INTEGER

PRICE

Стоимость

INTEGER

STOIM

Сумма

INTEGER

ISPOLN_ID

Внешний ключ на таблицу ISPOLN

INTEGER

PODRAZDELENIYA_ID

Внешний ключ на таблицу PODRAZDELENIYA

INTEGER

VID_RAB_ID

Внешний ключ на таблицу VID_RAB

INTEGER

NAIM_IZD_ID

Внешний ключ на таблицу NAIM_IZD

INTEGER

Реляционные связи между вышеперечисленными таблицами представлены на рисунке 5.2.

Рис. 5.2. Реляционная схема данных

5.2 Создание автоматизированной системы

Доступ к данным этой СУБД необходимо осуществлять с помощью SQLdb. В качестве компонентов доступа к базе данных использовался набор IBConnection. SQLdb - это интерфейс прикладного уровня, который используется разработчиками приложений для доступа к данным.

В разработке программы использовались следующие компоненты:

- IBConnection - этот компонент используется другими компонентами для подключения к источникам данных SQLdb;

- TSQLQuery - потомок TDataset и он представляет данные из SQL запроса в виде таблицы. Также этот компонент можно использовать для выполнения запроса, не возвращающих данных.

- TSQLTransaction - cоздает транзакцию на сервере базы данных.

- TDataSource - обеспечивает взаимодействие набора данных с компонентами отображения данных;

- TMainMenu - определяет главное меню формы;

- TPanel - представляет собой контейнер общего назначения;

- TEdit - представляет собой однострочный редактор текста. С его помощью можно вводить и / или отображать достаточно длинные текстовые строки;

- TDBLookupComboBox - реализация списков подстановки в текущий набор данных из другого набора данных;

- TDBEdit - представляет собой однострочный редактор текста, привязанный к определенному столбцу таблицы базы данных, позволяющий вводить и редактировать данные;

- TDBGrid - используется для манипуляций с данными, извлеченными из базы данных и представленными в виде таблицы;

- TButton - широко используются для управления программами;

- TPopupMenu - используются для создания вспомогательных (локальных) меню, появляющихся после нажатия правой кнопки мыши. В отличие от главного меню, вспомогательное меню может быть создано для любого оконного компонента;

- TLabel - предназначен для размещения на форме различного рода текстовых надписей;

Главной задачей программирования интерфейса базы данных является предоставление пользователям удобных инструментов для реализации своих производственных задач. Программно реализованы следующие основные моменты:

1. Подключение к базе данных:

procedure TForm1. Button1Click (Sender: TObject);

begin

try

dm.IBConnection1. DatabaseName:=FileNameEdit1. FileName;

except

showmessage ('неверный путь');

exit;

end;

try

dm.IBConnection1. Connected:=true;

except

ShowMessage (' Выберите файл базы данных (BASE.FDB)');

exit;

end;

try

dm.SQLTransaction1. Active:=true;

dm.SQLQuery1. Active:=true;

dm.SQLQuery2. Active:=true;

dm.SQLQuery3. Active:=true;

dm.SQLQuery4. Active:=true;

dm.SQLQuery5. Active:=true;

dm.SQLQuery6. Active:=true;

dm.SQLQuery7. Active:=true;

dm.SQLQuery8. Active:=true;

dm.SQLQuery9. Active:=true;

dm.SQLQuery10. Active:=true;

dm. Datasource1. Enabled:=true;

dm. Datasource2. Enabled:=true;

dm. Datasource3. Enabled:=true;

dm. Datasource4. Enabled:=true;

dm. Datasource5. Enabled:=true;

dm. Datasource6. Enabled:=true;

dm. Datasource7. Enabled:=true;

dm. Datasource7. Enabled:=true;

dm. Datasource8. Enabled:=true;

dm. Datasource9. Enabled:=true;

dm. Datasource10. Enabled:=true;

label1. Caption:='состояние: подключено';

MenuItem1. Visible:=true;

MenuItem7. Visible:=true;

MenuItem12. Visible:=true;

except

showmessage ('Ошибка подключения к базе');

exit;

end;

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

dm. Datasource1. Enabled:=false;

dm. Datasource2. Enabled:=false;

dm. Datasource3. Enabled:=false;

dm. Datasource4. Enabled:=false;

dm. Datasource5. Enabled:=false;

dm. Datasource6. Enabled:=false;

dm. Datasource7. Enabled:=false;

dm. Datasource8. Enabled:=false;

dm. Datasource9. Enabled:=false;

dm. Datasource10. Enabled:=false;

dm.SQLQuery1. Active:=false;

dm.SQLQuery2. Active:=false;

dm.SQLQuery3. Active:=false;

dm.SQLQuery4. Active:=false;

dm.SQLQuery5. Active:=false;

dm.SQLQuery6. Active:=false;

dm.SQLQuery7. Active:=false;

dm.SQLQuery8. Active:=false;

dm.SQLQuery9. Active:=false;

dm.SQLQuery10. Active:=false;

dm.SQLTransaction1. Active:=false;

dm.IBConnection1. Connected:=false;

MenuItem1. Visible:=false;

MenuItem7. Visible:=false;

MenuItem12. Visible:=false;

label1. Caption:='состояние: отключено';

end;

2. Вызов необходимых форм через пункты меню главной формы, появляющегося после подключения к базе данных:

procedure TForm1. MenuItem2Click (Sender: TObject);

begin

try

dm.IBConnection1. Connected:=true;

dm.SQLQuery2. Active:=true;

dm. Datasource2. Enabled:=true;

Application. CreateForm (TForm2, Form2);

form2. Show;

except

ShowMessage (' Подключитесь к базе');

exit;

end;

end;

3. Сортировка данных при клике на шапку таблицы:

procedure TForm2.DBGrid1TitleClick (Column: TColumn);

begin

if Column. Field. Tag = 0 then

begin

dm.SQLQuery2. Active:=false;

dm.SQLQuery2.SQL. Clear;

dm.SQLQuery2.SQL. Add ('select * from podrazdeleniya ORDER BY ' + Column. FieldName);

dm.SQLQuery2. Active:=true;

dm. Datasource2. Enabled:=true;

column. Title. Font. Color:=clBlue;

Column. Field. Tag:= not Column. Field. Tag;

end;

end;

4. Сохранение введенной информации в базе данных:

procedure TForm2. Button1Click (Sender: TObject);

begin

dm.SQLQuery2. ApplyUpdates;

dm.sqlquery2. Active:=false;

dm.SQLtransaction1. Commit;

dm.sqltransaction1. StartTransaction;

dm.sqlquery2. Active:=true;

showmessage('Сохранено');

end;

5. Запрос на форме «Показать приложения»: select * FROM prilozh WHERE prilozh.N_dog=+ m, где m - номер государственного контракта, соответствующего выбранной строке в таблице «Государственные контракты»:

procedure TForm9. Button5Click (Sender: TObject);

begin

dm.SQLQuery9. Active:=false;

dm.SQLQuery9.SQL. Clear;

dm.SQLQuery9.SQL. Add ('select * from gos_contr ORDER BY id');

dm.SQLQuery9. Active:=true;

dm. Datasource9. Enabled:=true;

end;

6. Запрос «Журнал счет-фактур»: SELECT n_dog, podr, sum(stoim) FROM sch_f GROUP BY N_DOG, podr.

7. Запрос «Исполнение государственных контрактов». Для его реализации необходимы:

procedure TForm12. Button1Click (Sender: TObject);

var str: string;

begin

DBGrid1. DataSource. DataSet. Close;

dm.SQLQuery12.SQL. Clear;

dm. SqlQuery12.SQL. Add ('select * from isp_gk where PODR1='+chr(39)+DBLookupComboBox1. Text+chr(39)+' AND DATA Between '+chr(39)+DateEdit1. Text+chr(39)+' AND '+chr(39)+DateEdit2. Text+chr(39)+' Order By DATA;');

DBGrid1. DataSource. DataSet. Open;

SqlQuery1.SQL. Clear;

SqlQuery1.SQL. Add ('select sum(SUMM) AS summa From GOS_CONTR, ZHURNAL11 where N=N_DOG and PODR1='+chr(39)+DBLookupComboBox1. Text+chr(39)+' AND DATA Between '+chr(39)+DateEdit1. Text+chr(39)+' AND '+chr(39)+DateEdit2. Text+chr(39));

SqlQuery1. Active:=true;

Edit1. Text:= DataSource1. DataSet. Fields[0].AsString;

DataSource1. DataSet. Close;

SqlQuery2.SQL. Clear;

SqlQuery2.SQL. Add ('select sum («st») AS summa From GOS_CONTR, ZHURNAL11 where N=N_dog and PODR1='+chr(39)+DBLookupComboBox1. Text+chr(39)+' AND DATA Between '+chr(39)+DateEdit1. Text+chr(39)+' AND '+chr(39)+DateEdit2. Text+chr(39));

SqlQuery2. Active:=true;

Edit2. Text:= DataSource2. DataSet. Fields[0].AsString;

DataSource2. DataSet. Close;

end;

Другие моменты разработки носят стандартный характер и не обладают какими либо специфическими особенностями.

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

6. Описание пользовательского интерфейса

Главная форма программного продукта «Подключение» изображена на рисунке 6.1 и представляет собой форму для выбора файла базы данных. После выбора базы и подключения к ней становится доступным меню для выбора справочников, таблиц и запросов (рис. 6.2). При нажатии на кнопку «Справочники» появляется список справочников. При выборе любой кнопки меню появляется соответствующая ей форма.

Рис. 6.1. Главная форма «Подключение»

Рис. 6.2. Главная форма после подключения к базе данных

На рисунке 6.3 представлена форма «Подразделения».

Компоненты присутствующие на форме (Сверху вниз):

· Навигатор. С его помощью осуществляется перемещение по строкам, добавление новой строки, удаление строки, редактирование, сохранение данных.

· Поле редактирования и ввода данных.

· Таблица «Подразделения».

· Кнопки сохранения и закрытия формы.

Аналогичным образом выглядят формы «Наименование изделия» (рис. 6.4), «Предмет» (рис. 6.5).

Рис. 6.3. Форма «Подразделения»

Рис. 6.4. Форма «Наименование изделия»

Рис. 6.5 Форма «Предмет»

Форма «Исполнитель», которая изображена на рисунке 6.6 так же является справочником. Добавление новой строки, удаление строки, перемещение по строкам осуществляется с помощью навигатора. Ввод и редактирование данных осуществляется через соответствующие поля. Сохранение данных в таблице базы осуществляется кнопкой «Сохранить» или с помощью навигатора.

Рис. 6.6 Форма «Исполнитель»

На рисунке 6.7 представлена форма «Вид работ». От предыдущих справочников ее отличает поле «Наименование изделия». Поле содержит данные из таблицы «Наименование изделия» и представлено в виде выпадающего списка.

Рис. 6.7. Форма «Вид работ»

Форма «Техническое задание» изображена на рисунке 6.8. Данные в поля «Номер договора», «Предмет», «Подразделение» заполняются из выпадающих списков.

Рис. 6.8. Форма «Техническое задание»

По аналогии заполняются форма «Приложение» (рис. 6.9)

Рис. 6.9. Форма «Приложение»

Форма «Государственные контракты» (рис. 6.10) содержит кнопку «Показать приложения». При выборе определенной строки в таблице «Государственные контракты» и нажатии этой кнопки отображаются все данные из таблицы «Приложения» соответствующие выбранному Государственному контракту (Рис. 6.11).

Рис. 6.10. Форма «Государственные контракты»

Рис. 6.11. Форма «Государственные контракты»

На форма «Счет-фактуры» (рис. 6.12) при выборе номера договора из выпадающего списка автоматически заполняются поля ИСПОЛНИТЕЛЬ, ПОДРАЗДЕЛЕНИЕ, ПРЕДМЕТ. При сохранении автоматически заполняется поле СУММА.

Рис. 6.12 Форма «Счет-фактуры»

Следующая кнопка меню главной формы «Запросы» содержит два элимента: «Журнал счет-фактур» и «Исполнение государственных контрактов».

На форме отображен результат запроса - таблица, в поле «Сумма» которой содержится общая сумма всех счет-фактур соответствующих одному номеру Государственного контракта.

Рис. 6.11. Форма «Журнал счет-фактур»

На форме «Исполнение государственных контрактов» (рис. 6.12) видим анализ исполнение государственных контрактов с выборкой по подразделениям и периоду заключения контракта. Так же общую сумму выбранных государственных контрактов и соответствующих им счет-фактур.

Рис. 6.12. Форма «Исполнение Государственных контрактов»

7. Тестирование программного продукта

После внедрения программного средства производится его тестирование. Тестирование - это процесс многократного выполнения программы с целью обнаружения ошибок.

Опытную эксплуатацию и тестирование программный продукт проходил на протяжении недели в Отделе информатизации Управления Федеральной службы судебных приставов. В ходе этого были выявлены след недостатки:

1. На форме «Государственные контракты» удобнее было бы сразу отображать приложения, соответствующие выбранному государственному контракту.

2. Недостаточное количество символов в полях ввода данных;

3. В справочник «Вид работ» необходимо добавить поле «Наименование изделия».

С учетом пожеланий будущих пользователей и результатов опытной эксплуатации данные недостатки были устранены в течение 7 дней. После этого программа успешно внедрена.

Заключение

Целью данной работы являлась разработка системы автоматизации исполнения государственных контрактов и договоров отдела информатизации Управления Федеральной службы судебных приставов по Архангельской области.

В процессе создания проекта был осуществлен целый комплекс работ по проектированию и реализации информационной системы, исходя из поставленной задачи.

Была проанализирована литература, область деятельности отдела информатизации, спроектирована и разработана база данных BASE.FDB, разработан программный модуль СИСТЕМА АВТОМАТИЗАЦИИ АНАЛИЗА ИСПОЛНЕНИЯ ГОСУДАРСТВЕННЫХ КОНТРАКТОВ И ДОГОВОРОВ, проведено тестирование программного продукта, доработаны ошибки, выявленные в ходе тестирования.

Итогом выполнения данной квалификационной работы стала автоматизированная система анализа исполнения государственных контрактов и договоров отдела информатизации Управления Федеральной службы судебных приставов. Разработана на базе платформы Lazarus 0.9.28.2 с использованием системы управления базы данных (СУБД) Firebird и представляет собой клиент-серверное приложение. Данная система является кроссплатформенной, это означает, что программный модуль исходного кода может быть откомпилирован под ту среду, в которой его планируется эксплуатировать. База данных не требует дополнительных манипуляций и может быть перенесена на любую платформу методом копирования.

Разработанный программный продукт обладает простым и дружественным интерфейсом, что позволяет любому сотруднику службы судебных приставов использовать его при наличии доступа к приложению. В дальнейшее данный программный продукт планируется внедрить для использования во всех территориальных подразделениях Службы судебных приставов.

При создании проекта использовалось бесплатное программное обеспечение, что позволит не затрачивать материальные средства на приобретение и установку дополнительных лицензионных программ.

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

автоматизированный государственный контракт безопасность

Список литературы

1. Федеральный закон от 27.07.2006 №149 - ФЗ «Об информации, информационных технологиях и о защите информации» (принят ГД ФС РФ 08.07.2006)

2. Ковязин А.Н., Востриков С.М. Мир InterBase. 2003. 489 с.

3. Борри Х. Firebird: руководство разработчика баз данных: Пер. с анrл. СПб.: БХВ Петербурr, 2006. 1104 с.: ил.

4. Положение об отделе информатизации и обеспечения информационной безопасности Управления Федеральной службы судебных приставов по Архангельской области

5. Рудюк С.А., Lazarus. Delphi-кросс-платформенный. Программирование для свободных людей. 2006. (http://corp2.net)

6. Сайт Firebird [Электронный ресурс]. - Режим доступа: http://www.firebirdsql.org/

7. Официальный сайт Федеральной службы судебных приставов России. [Электронный ресурс]. - Режим доступа: http://www.fssprus.ru

8. ИТ блокнот /Николай Войнов/ винегрет восприятия информационных технологий. [Электронный ресурс]. - Режим доступа: http://nvoynov.blogspot.com/2007/09/blog-post_19.html

9. ITProPortal.RU. Использование SQLdb в Lazarus: основы работы с базами данных [Электронный ресурс]. - Режим доступа: http://www.itproportal.ru/sqldbinlazarus.html

10. FreePascal.ru. Информационный портал для разработчиков. [Электронный ресурс]. - Режим доступа: http://www.freepascal.ru/article //lazarus/

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.