Разработка системы автоматизации архива "Айрон Маунтен"
Разработка информационной системы для автоматизации логистики в управлении архивом документов компании "Айрон Маунтен". Обзор рынка аналогов программных продуктов. Тестирование разработанной программной системы. Даталогическая и физическая модели данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 04.05.2014 |
Размер файла | 7,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рисунок 3.30 - Главная форма программы (Предоставление документации)
Регистрация новых актов передачи документации на текущую дату осуществляется с помощью кнопки навигатора (Insert). После выбора клиента из выпадающего списка в таблице «Список актов передачи», на имя которого оформляется акт, необходимо сохранить запись с помощью кнопки навигатора (Post).
Для добавления документов в акт передачи, необходимо выбрать нужный документ, хранящийся в архиве Айрон Маунтен, из таблицы «Список документов клиента» и нажать на кнопку «Добавить». При этом документ появляется в таблице «Список документов акта передачи». Удаление документа из акта передачи происходит аналогичным образом с помощью кнопки «Удалить».
Печать акта передачи документации осуществляется нажатием на кнопку «Печать» навигатора актов передачи документации (см. рис. 3.31).
Рисунок 3.31 - Акт передачи документации
Для поиска актов передачи документации реализован поиск актов по номеру, дате, клиенту и менеджеру. Поиск и фильтрация актов передачи документации осуществляется аналогичным образом.
Закладка «Уничтожение документации» главной формы программы служит для отображения, добавления, и редактирования информации об актах уничтожения документации клиентов, хранящейся в архиве Айрон Маунтен, по истечению сроков хранения (см. рис. 3.32).
Рисунок 3.32 - Главная форма программы (Уничтожение документации)
Регистрация новых актов уничтожения документации на текущую дату осуществляется с помощью кнопки навигатора (Insert). Для добавления документов в акт уничтожения, необходимо выбрать нужный документ, хранящийся в архиве Айрон Маунтен, подлежащий уничтожению по истечению сроков хранения, из таблицы «Список документов на уничтожение» и нажать на кнопку «Добавить». При этом документ появляется в таблице «Список документов акта уничтожения». Удаление документа из акта уничтожения происходит аналогичным образом с помощью кнопки «Удалить».
Печать акта уничтожения документации осуществляется нажатием на кнопку «Печать» навигатора актов уничтожения документации (см. рис. 3.33).
Рисунок 3.33 - Акт уничтожения документации
Для поиска актов уничтожения документации реализован поиск актов по номеру, дате и менеджеру. Поиск и фильтрация актов уничтожения документации осуществляется аналогичным образом.
3.4 Интерфейс справочников
Для работы со справочной информацией системы автоматизации разработаны следующие справочники системы:
справочник «Клиенты»;
справочник «Менеджеры»;
справочник «Группы документов».
Справочник «Клиенты» служит для отображения, добавления, поиска и редактирования информации о клиентах компании Айрон Маунтен (см. рис. 3.34).
Рисунок 3.34 - Справочник «Клиенты»
Поиск клиентов реализован по названию организации, телефону и адресу. Для поиска клиента необходимо нажать на соответствующую кнопку «Поиск», ввести параметры поиска и нажать на кнопку ОК. В нижней части формы справочника отображается общее количество записей справочника.
Справочник «Менеджеры» служит для отображения, добавления, поиска и редактирования информации о менеджерах операционного отдела компании Айрон Маунтен (см. рис. 3.35).
Рисунок 3.35 - Справочник «Менеджеры»
Поиск менеджеров реализован по названию фамилии и телефону. Для поиска менеджера необходимо нажать на соответствующую кнопку «Поиск», ввести параметры поиска и нажать на кнопку ОК. В нижней части формы справочника отображается общее количество записей справочника.
Справочник «Группы» служит для отображения, добавления, поиска и редактирования информации о группах документации, принимаемой на хранение в архив компании Айрон Маунтен (см. рис. 3.36).
Рисунок 3.36 - Справочник «Группы»
Поиск группы документов реализован по наименованию. Для поиска группы документации необходимо нажать на соответствующую кнопку «Поиск», ввести параметры поиска и нажать на кнопку ОК. В нижней части формы справочника отображается общее количество записей справочника.
3.5 Интерфейс отчетов
Для формирования результатной отчетности за определенный период времени разработана форма «Отчеты». Закладка «Принятые документы» служит для формирования отчета о принятой на хранение в архив Айрон Маунтен документации за определенный период времени (см. рис. 3.37).
Рисунок 3.37 - Отчет о принятой документации
Закладка «Переданные документы» служит для формирования отчета о предоставленной клиентам документации из архива Айрон Маунтен за определенный период времени (см. рис. 3.38).
Рисунок 3.38 - Отчет о предоставленной документации
Закладка «Уничтоженные документы» служит для формирования отчета об уничтоженной документации архива Айрон Маунтен по истечению сроков хранения (см. рис. 3.39).
Рисунок 3.39 - Отчет об уничтоженной документации
Для формирования отчетов необходимо с помощью выпадающих календарей выбрать период отчетности и нажать на кнопку «Сформировать».
Заключение
В рамках данного дипломного проекта была разработана информационная система, предназначенная для автоматизации логистики в управлении архивом документов компании «Айрон Маунтен». Разрабатываемая информационная система автоматизирует весь спектр задач менеджеров операционного отдела компании связанных с приемом, предоставлением и уничтожением документации в архиве, а также формированием сопроводительной документации и результатной отчетности. Система позволяет решать следующие задачи:
прием документации на хранение;
формирование и печать акта о приеме документации в архив;
адресное хранение архивных коробов;
формирование и печать инвентаризационной описи документов;
ведение архива электронных копий документов;
контроль сроков хранения документации;
уничтожение документации с истекшим сроком хранения;
формирование и печать акта об уничтожении документов;
оперативный поиск документации;
доставка документации по требованию клиента;
формирование и печать акта о передаче документации клиенту;
формирование отчета о принятой на хранение в архив документации (по клиенту/периоду);
формирование отчета о предоставленной клиентам документации из архива (по клиенту/периоду);
формирование отчета об уничтоженной документации (по клиенту/периоду);
анализ работы архива.
Использование разработанной системы для автоматизации логистики в управлении архивом способствует повышению качественных показателей работы архива:
уменьшение количества бумажных документов ведет к сокращению временных затрат на их оформление, а также снижает количество ошибок ввода данных, что в целом повышает качество обслуживания клиентов;
точная информация о запросах клиентов на этапе планирования заказов позволяет выявить возможные несоответствия при их сборке и предпринять действия по их устранению или снижению негативных последствий (предварительное информирование);
повышение качества управления документацией, как по количеству (всегда известно, где и сколько документов имеется в архиве), так и по качеству (точное соблюдение сроков хранения) исключает нарекания от клиентов и повышает их удовлетворенность и лояльность.
В экономической части дипломного проекта, выбрана методика и проведен расчет показателей экономической эффективности проекта. В результате анализа этих показателей было установлено что разработанная информационная система дает возможность снизить трудовые затраты компании и таким образом, можно сделать вывод о целесообразности разработки данной системы.
Список использованной литературы
История развития компании «Айрон Маунтен»: http://ironmountain.ru/aboutus/history.asp
Информация о компании «Айрон Маунтен»: http://www.ironmountain.ru/aboutus/
Система управления складом «Penta WMS»: http://www.pentawms.ru/
Система управления складом «WMS Qguar Pro»: http://www.quantum-software.pl/ru/index.php/qguar-wms-pro
Система управления складом «Solvo.WMS»: http://www.solvo.ru/products/systems/wms/index.php
Основы проектирования реляционных баз данных. Лекция 2: Предметная область базы данных и ее модели: http://www.intuit.ru/studies/courses/1095/191/lecture/2623
Маклаков С.В. BPwin и ERwin. CASE-средства разработки информационных систем. -- М.: Диалог-МИФИ, 2000. -- 256 с.
ГОСТ 34.601-90 Информационная технология. Комплекс стандартов и руководящих документов на автоматизированные системы. Стадии
создания АС.
ГОСТ 34.602-89 Информационная технология. Комплекс стандартов и руководящих документов на автоматизированные системы. ТЗ на
создание АС.
Информационные системы в экономике: учебник для студентов вузов / Под ред. Г. А. Титоренко. - 2-е изд., перераб. и доп. - М.: ЮНИТИ-ДАНА, 2008. - 463 с.
Попов Ф.А., Ануфриева Н.Ю. Интеллектуализация пользовательских интерфейсов информационных систем // Вестник Томского государственного университета. - 2007.- №300(1).- с.130-133.
Программирование в Delphi 5: 2-е изд., переработанное и дополненное / А.Я. Архангельский. - М.: ЗАО «Издательство БИНОМ», 2000.-1072с.: ил.
Новиков Ф.А. Microsoft Office 2003 в целом. - СПб.: БХВ - Санкт-Петербург, 2005. - 728 с.:ил
Томас Коннолли, Каролин Бегг, Анна Страчан. Базы данных. Проектирование, реализация и сопровождение. Теория и практика, Вильямс, М, 2001 г.
Фаронов В. В. Программирование баз данных в Delphi 7. Учебный курс. - СПб.: Питер, 2006. - 459 с.: ил
Черемных С.В., Семенов И.О., Ручкин В.С. Структурный анализ систем: IDEF-технологии:практикум. М.: Финансы и статистика, 2003. - 192 с.
Щербаков А. Ю. Современная компьютерная безопасность. Теоретические основы. Практические аспекты. М.: Книжный мир, 2009. - 352 с.
Элисон Балтер. Профессиональное программирование в Microsoft Office Access 2003 (+CD-ROM), Вильямс, М, 2006 г.
ГОСТ Р 51141-98. «Делопроизводство и архивное дело. Термины и определения»
Приложение А
Модуль главной формы программы (Main.pas)
unit Main;
uses Data, Clients, Manager, Group, Sklad, Copy, Report, Password;
{$R *.dfm}
procedure TFormMain.Button10Click(Sender: TObject);
var
S: string;
temp: OleVariant;
Excel: Variant;
t: integer;
begin
Excel := CreateOleObject('Excel.Application');
S:=ExtractFilePath(Application.ExeName);
temp:=S+'\Образец\Акт2.xls';
Try
Excel.Workbooks.Open[temp];
Excel.Visible := True;
temp:=S+'Документ\Акт передачи № '+IntToStr(DModule.TransferНомер.Value)+'.xls';
Excel.Range['e5']:=IntToStr(DModule.TransferНомер.Value);
Excel.Range['f5']:=DateToStr(DModule.TransferДата.Value);
Excel.Range['b7']:=DModule.TransferКлиент.Value;
Excel.Range['b8']:=DModule.TransferМенеджер.Value;
t:=11;
With DModule.DocTrans do
begin
First;
while not EOF do
begin
S:='a'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocTransНомер.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='b'+IntToStr(t);
Excel.Range[S]:=DModule.DocTransГруппа.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='c'+IntToStr(t);
Excel.Range[S]:=DModule.DocTransНаименование.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='d'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocTransНомерКороба.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='e'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocTransКолЛистов.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='f'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocTransСрокХранения.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
inc(t);
Next;
end;
end;
S:='e'+IntToStr(t+1);
Excel.Range[S]:='Подпись клиента';
S:='f'+IntToStr(t+1);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
S:='e'+IntToStr(t+2);
Excel.Range[S]:='Подпись менеджера';
S:='f'+IntToStr(t+2);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
Excel.ActiveWorkbook.SaveAs[temp];
Except
begin
ShowMessage('Шаблон документа "Акт передачи" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
procedure TFormMain.Button11Click(Sender: TObject);
begin
DModule.DocAdd.Close;
DModule.DocAdd.Filter := 'Номер = ' +
IntToStr(DModule.QDocKlientДокументНомер.Value);
DModule.DocAdd.Filtered := True;
DModule.DocAdd.Open;
DModule.DocAdd.Edit;
DModule.DocAddНомерПередачи.Value := DModule.TransferНомер.Value;
DModule.DocAdd.Post;
DModule.DocTrans.Close;
DModule.DocTrans.Open;
DModule.QDocKlient.Close;
DModule.QDocKlient.Open;
end;
procedure TFormMain.Button12Click(Sender: TObject);
begin
DModule.DocAdd.Close;
DModule.DocAdd.Filter := 'Номер = ' +
IntToStr(DModule.DocTransНомер.Value);
DModule.DocAdd.Filtered := True;
DModule.DocAdd.Open;
DModule.DocAdd.Edit;
DModule.DocAdd.FieldByName('НомерПередачи').AsString := '';
DModule.DocAdd.Post;
DModule.DocTrans.Close;
DModule.DocTrans.Open;
DModule.QDocKlient.Close;
DModule.QDocKlient.Open;
end;
procedure TFormMain.Button13Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Дата', F) then
Begin
DModule.Destruction.Filter := 'Дата = ' + F ;
DModule.Destruction.Filtered := True;
End;
end;
procedure TFormMain.Button14Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Номер', F) then
Begin
DModule.Destruction.Filter := 'Номер = ' + F;
DModule.Destruction.Filtered := True;
End;
end;
procedure TFormMain.Button16Click(Sender: TObject);
begin
DModule.Destruction.Filter := 'КодМенеджера = ' +
IntToStr(DModule.DestructionКодМенеджера.Value);
DModule.Destruction.Filtered := True;
end;
procedure TFormMain.Button17Click(Sender: TObject);
var
S: string;
temp: OleVariant;
Excel: Variant;
t: integer;
begin
Excel := CreateOleObject('Excel.Application');
S:=ExtractFilePath(Application.ExeName);
temp:=S+'\Образец\Акт3.xls';
Try
Excel.Workbooks.Open[temp];
Excel.Visible := True;
temp:=S+'Документ\Акт уничтожения № '+IntToStr(DModule.DestructionНомер.Value)+'.xls';
Excel.Range['e5']:=IntToStr(DModule.DestructionНомер.Value);
Excel.Range['f5']:=DateToStr(DModule.DestructionДата.Value);
Excel.Range['b7']:=DModule.DestructionМенеджер.Value;
t:=10;
With DModule.DocDestr do
begin
First;
while not EOF do
begin
S:='a'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocDestrНомер.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='b'+IntToStr(t);
Excel.Range[S]:=DModule.DocDestrГруппа.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='c'+IntToStr(t);
Excel.Range[S]:=DModule.DocDestrНаименование.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='d'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocDestrНомерКороба.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='e'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocDestrКолЛистов.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='f'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocDestrСрокХранения.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
inc(t);
Next;
end;
end;
S:='e'+IntToStr(t+1);
Excel.Range[S]:='Подпись менеджера';
S:='f'+IntToStr(t+1);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
Excel.ActiveWorkbook.SaveAs[temp];
Except
begin
ShowMessage('Шаблон документа "Акт уничтожения" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
procedure TFormMain.Button18Click(Sender: TObject);
begin
DModule.DocAdd.Close;
DModule.DocAdd.Filter := 'Номер = ' +
IntToStr(DModule.DocDestrНомер.Value);
DModule.DocAdd.Filtered := True;
DModule.DocAdd.Open;
DModule.DocAdd.Edit;
DModule.DocAdd.FieldByName('НомерУничтожения').AsString := '';
DModule.DocAdd.Post;
DModule.DocDestr.Close;
DModule.DocDestr.Open;
DModule.QDocDestr.Close;
DModule.QDocDestr.Open;
end;
procedure TFormMain.Button19Click(Sender: TObject);
begin
DModule.DocAdd.Close;
DModule.DocAdd.Filter := 'Номер = ' +
IntToStr(DModule.QDocDestrНомер.Value);
DModule.DocAdd.Filtered := True;
DModule.DocAdd.Open;
DModule.DocAdd.Edit;
DModule.DocAddНомерУничтожения.Value := DModule.DestructionНомер.Value;
DModule.DocAdd.Post;
DModule.DocDestr.Close;
DModule.DocDestr.Open;
DModule.QDocDestr.Close;
DModule.QDocDestr.Open;
end;
procedure TFormMain.Button1Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Дата', F) then
Begin
DModule.Reception.Filter := 'Дата = ' + F ;
DModule.Reception.Filtered := True;
End;
end;
procedure TFormMain.Button20Click(Sender: TObject);
var
S: string;
temp: OleVariant;
Excel: Variant;
t: integer;
begin
Excel := CreateOleObject('Excel.Application');
S:=ExtractFilePath(Application.ExeName);
temp:=S+'\Образец\Опись.xls';
Try
Excel.Workbooks.Open[temp];
Excel.Visible := True;
temp:=S+'Документ\Опись документов короба № '+IntToStr(DModule.BoxНомер.Value)+'.xls';
Excel.Range['d5']:=IntToStr(DModule.BoxНомер.Value);
Excel.Range['e5']:=DateToStr(DModule.ReceptionДата.Value);
Excel.Range['b7']:=DModule.ReceptionКлиент.Value;
Excel.Range['b8']:=DModule.ReceptionМенеджер.Value;
t:=11;
With DModule.Doc do
begin
First;
while not EOF do
begin
S:='a'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocНомер.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='b'+IntToStr(t);
Excel.Range[S]:=DModule.DocГруппа.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='c'+IntToStr(t);
Excel.Range[S]:=DModule.DocНаименование.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='d'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocКолЛистов.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='e'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.DocСрокХранения.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
inc(t);
Next;
end;
end;
S:='d'+IntToStr(t+1);
Excel.Range[S]:='Подпись клиента';
S:='e'+IntToStr(t+1);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
S:='d'+IntToStr(t+2);
Excel.Range[S]:='Подпись менеджера';
S:='e'+IntToStr(t+2);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
Excel.ActiveWorkbook.SaveAs[temp];
Except
begin
ShowMessage('Шаблон документа "Опись короба" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
procedure TFormMain.Button2Click(Sender: TObject);
begin
DModule.Reception.Filter := 'КодКлиента = ' +
IntToStr(DModule.ReceptionКодКлиента.Value);
DModule.Reception.Filtered := True;
end;
procedure TFormMain.Button3Click(Sender: TObject);
begin
DModule.Reception.Filter := 'КодМенеджера = ' +
IntToStr(DModule.ReceptionКодМенеджера.Value);
DModule.Reception.Filtered := True;
end;
procedure TFormMain.Button4Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Номер', F) then
Begin
DModule.Reception.Filter := 'Номер = ' + F;
DModule.Reception.Filtered := True;
End;
end;
procedure TFormMain.Button5Click(Sender: TObject);
var
S: string;
temp: OleVariant;
Excel: Variant;
t: integer;
begin
Excel := CreateOleObject('Excel.Application');
S:=ExtractFilePath(Application.ExeName);
temp:=S+'\Образец\Акт1.xls';
Try
Excel.Workbooks.Open[temp];
Excel.Visible := True;
temp:=S+'Документ\Акт приема № '+IntToStr(DModule.ReceptionНомер.Value)+'.xls';
Excel.Range['d5']:=IntToStr(DModule.ReceptionНомер.Value);
Excel.Range['e5']:=DateToStr(DModule.ReceptionДата.Value);
Excel.Range['b7']:=DModule.ReceptionКлиент.Value;
Excel.Range['b8']:=DModule.ReceptionМенеджер.Value;
t:=11;
With DModule.Box do
begin
First;
while not EOF do
begin
S:='a'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.BoxНомер.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='b'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.BoxНомерЯчейки.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='c'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.BoxСтеллаж.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='d'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.BoxЯрус.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S:='e'+IntToStr(t);
Excel.Range[S]:=IntToStr(DModule.BoxЯчейка.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
inc(t);
Next;
end;
end;
S:='d'+IntToStr(t+1);
Excel.Range[S]:='Подпись клиента';
S:='e'+IntToStr(t+1);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
S:='d'+IntToStr(t+2);
Excel.Range[S]:='Подпись менеджера';
S:='e'+IntToStr(t+2);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=2;
Excel.ActiveWorkbook.SaveAs[temp];
Except
begin
ShowMessage('Шаблон документа "Акт приема документации" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
procedure TFormMain.Button6Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Дата', F) then
Begin
DModule.Transfer.Filter := 'Дата = ' + F ;
DModule.Transfer.Filtered := True;
End;
end;
procedure TFormMain.Button7Click(Sender: TObject);
var
F: string;
begin
F := '';
If InputQuery('Поиск', 'Номер', F) then
Begin
DModule.Transfer.Filter := 'Номер = ' + F;
DModule.Transfer.Filtered := True;
End;
end;
procedure TFormMain.Button8Click(Sender: TObject);
begin
DModule.Transfer.Filter := 'КодКлиента = ' +
IntToStr(DModule.TransferКодКлиента.Value);
DModule.Transfer.Filtered := True;
end;
procedure TFormMain.Button9Click(Sender: TObject);
begin
DModule.Transfer.Filter := 'КодМенеджера = ' +
IntToStr(DModule.TransferКодМенеджера.Value);
DModule.Transfer.Filtered := True;
end;
procedure TFormMain.DBGrid1DblClick(Sender: TObject);
var
S: string;
begin
Try
begin
S:=ExtractFilePath(Application.ExeName)+'Архив\'+
IntToStr(DModule.DocНомер.Value)+'.bmp';
FormCopy.Image.Picture.LoadFromFile(S);
FormCopy.Image.Stretch := True;
end;
Except
begin
S:=ExtractFilePath(Application.ExeName)+'Архив\document_line_chart_01.ico';
FormCopy.Image.Picture.LoadFromFile(S);
FormCopy.Image.Stretch := False;
end;
End;
FormCopy.Caption := 'Сканкопия № ' + IntToStr(DModule.DocНомер.Value);
FormCopy.ShowModal;
end;
procedure TFormMain.FormActivate(Sender: TObject);
begin
FormPas.Caption := 'Вход в архив [авторизация]';
FormPas.ShowModal;
end;
procedure TFormMain.N2Click(Sender: TObject);
begin
FormSklad.Caption := 'Схема архива документов';
FormSklad.ShowModal;
end;
procedure TFormMain.N3Click(Sender: TObject);
begin
FormMain.Close;
end;
procedure TFormMain.N5Click(Sender: TObject);
begin
FormReport.ShowModal;
end;
procedure TFormMain.N6Click(Sender: TObject);
begin
FormClients.ShowModal;
end;
procedure TFormMain.N7Click(Sender: TObject);
begin
FormManager.ShowModal;
end;
procedure TFormMain.N8Click(Sender: TObject);
begin
FormGroup.ShowModal;
end;
end.
Модуль данных (Data.pas)
unit Data;
uses Main, Clients, Manager, Group, Sklad;
{$R *.dfm}
procedure TDModule.BoxAfterDelete(DataSet: TDataSet);
begin
Cell.Close;
Cell.Filter := 'Код = ' + IntToStr(DelBox);
Cell.Filtered := True;
Cell.Open;
Cell.Edit;
CellСтатус.Value := False;
Cell.Post;
Stellag.Close;
Stellag.Open;
end;
procedure TDModule.BoxAfterInsert(DataSet: TDataSet);
begin
BoxНомерАкта.Value := ReceptionНомер.Value;
FormSklad.Caption := 'Схема архива документов [выбор ячейки]';
FormSklad.ShowModal;
end;
procedure TDModule.BoxBeforeDelete(DataSet: TDataSet);
begin
DelBox := BoxНомерЯчейки.Value;
end;
procedure TDModule.DBoxDataChange(Sender: TObject; Field: TField);
begin
Doc.Filter := 'НомерКороба = ' + IntToStr(BoxНомер.Value);
Doc.Filtered := True;
end;
procedure TDModule.DDestructionDataChange(Sender: TObject; Field: TField);
begin
DocDestr.Filter := 'НомерУничтожения = ' + IntToStr(DestructionНомер.Value);
DocDestr.Filtered := True;
end;
procedure TDModule.DestructionAfterInsert(DataSet: TDataSet);
begin
DestructionДата.Value := Date();
DestructionКодМенеджера.Value := UserКод.Value;
end;
procedure TDModule.DestructionAfterRefresh(DataSet: TDataSet);
begin
Destruction.Filtered := False;
end;
procedure TDModule.DGroupDataChange(Sender: TObject; Field: TField);
begin
FormGroup.StatusBar.Panels.Items[1].Text := IntToStr(Group.RecordCount);
end;
procedure TDModule.DKlientDataChange(Sender: TObject; Field: TField);
begin
FormClients.StatusBar.Panels.Items[1].Text := IntToStr(Klient.RecordCount);
end;
procedure TDModule.DMenedgerDataChange(Sender: TObject; Field: TField);
begin
FormManager.StatusBar.Panels.Items[1].Text := IntToStr(Menedger.RecordCount);
end;
procedure TDModule.DocAfterInsert(DataSet: TDataSet);
begin
DocНомерКороба.Value := BoxНомер.Value;
end;
procedure TDModule.DReceptionDataChange(Sender: TObject; Field: TField);
begin
Box.Filter := 'НомерАкта = ' + IntToStr(ReceptionНомер.Value);
Box.Filtered := True;
QDocDestr.Close;
QDocDestr.Open;
end;
procedure TDModule.DStellagDataChange(Sender: TObject; Field: TField);
var
I, J, S, F, C: integer;
begin
Floor.Close;
Floor.Filter := 'НомерСтеллажа = ' + IntToStr(StellagНомер.Value);
Floor.Filtered := True;
Floor.Open;
FormSklad.StringGrid1.RowCount := DModule.StellagКолЯрусов.Value + 1;
FormSklad.StringGrid1.ColCount := DModule.StellagКолЯчеек.Value + 1;
F := DModule.StellagКолЯрусов.Value;
for I := 1 to DModule.StellagКолЯрусов.Value + 1 do
begin
FormSklad.StringGrid1.Rows[I].Text := IntToStr(F);
dec(F);
for J := 1 to DModule.StellagКолЯчеек.Value + 1 do
begin
FormSklad.StringGrid1.Cols[J].Text := IntToStr(J);
end;
end;
S := StellagНомер.Value;
F := DModule.StellagКолЯрусов.Value;
for I := 1 to DModule.StellagКолЯрусов.Value + 1 do
begin
for J := 1 to DModule.StellagКолЯчеек.Value + 1 do
begin
QFreeCell.Close;
QFreeCell.Parameters.ParamValues['S'] := S;
QFreeCell.Parameters.ParamValues['F'] := F;
QFreeCell.Parameters.ParamValues['C'] := J;
QFreeCell.Open;
if QFreeCellСтатус.Value = False then
FormSklad.StringGrid1.Cells[J, I] := IntToStr(QFreeCellКод.Value);
end;
dec(F);
end;
end;
procedure TDModule.DTransferDataChange(Sender: TObject; Field: TField);
begin
DocTrans.Filter := 'НомерПередачи = ' + IntToStr(TransferНомер.Value);
DocTrans.Filtered := True;
QDocKlient.Close;
QDocKlient.Filter := 'Код = ' + IntToStr(TransferНомер.Value);
QDocKlient.Filtered := True;
QDocKlient.Open;
end;
procedure TDModule.GroupAfterRefresh(DataSet: TDataSet);
begin
Group.Filtered := False;
end;
procedure TDModule.KlientAfterRefresh(DataSet: TDataSet);
begin
Klient.Filtered := False;
end;
procedure TDModule.MenedgerAfterRefresh(DataSet: TDataSet);
begin
Menedger.Filtered := False;
end;
procedure TDModule.ReceptionAfterInsert(DataSet: TDataSet);
begin
ReceptionДата.Value := Date();
ReceptionКодМенеджера.Value := UserКод.Value;
end;
procedure TDModule.ReceptionAfterRefresh(DataSet: TDataSet);
begin
Reception.Filtered := False;
end;
procedure TDModule.TransferAfterInsert(DataSet: TDataSet);
begin
TransferДата.Value := Date();
TransferКодМенеджера.Value := UserКод.Value;
end;
procedure TDModule.TransferAfterPost(DataSet: TDataSet);
begin
DocTrans.Filter := 'НомерПередачи = ' + IntToStr(TransferНомер.Value);
DocTrans.Filtered := True;
QDocKlient.Close;
QDocKlient.Filter := 'Код = ' + IntToStr(TransferНомер.Value);
QDocKlient.Filtered := True;
QDocKlient.Open;
end;
procedure TDModule.TransferAfterRefresh(DataSet: TDataSet);
begin
Transfer.Filtered := False;
end;
end.
Модуль справочника «Клиенты» (Clients.pas)
unit Clients;
uses Data;
{$R *.dfm}
procedure TFormClients.Button1Click(Sender: TObject);
begin
Find(GroupBox1.Caption);
end;
procedure TFormClients.Button2Click(Sender: TObject);
begin
Find(GroupBox2.Caption);
end;
procedure TFormClients.Button3Click(Sender: TObject);
begin
Find(GroupBox3.Caption);
end;
procedure TFormClients.Find(const Field: string);
var
F: string;
begin
F := '';
If InputQuery('Поиск', Field, F) then
Begin
DModule.Klient.Filter := Field + ' Like ' + Chr(39) + F + '*' + Chr(39);
DModule.Klient.Filtered := True;
End;
end;
end.
Модуль справочника «Менеджеры» (Manager.pas)
unit Manager;
uses Data;
{$R *.dfm}
procedure TFormManager.Button1Click(Sender: TObject);
begin
Find(GroupBox1.Caption);
end;
procedure TFormManager.Button2Click(Sender: TObject);
begin
Find(GroupBox2.Caption);
end;
procedure TFormManager.Find(const Field: string);
var
F: string;
begin
F := '';
If InputQuery('Поиск', Field, F) then
Begin
DModule.Menedger.Filter := Field + ' Like ' + Chr(39) + F + '*' + Chr(39);
DModule.Menedger.Filtered := True;
End;
end;
end.
Модуль справочника «Группы» (Group.pas)
unit Group;
uses Data;
{$R *.dfm}
procedure TFormGroup.Button1Click(Sender: TObject);
begin
Find(GroupBox1.Caption);
end;
procedure TFormGroup.Find(const Field: string);
var
F: string;
begin
F := '';
If InputQuery('Поиск', Field, F) then
Begin
DModule.Group.Filter := Field + ' Like ' + Chr(39) + F + '*' + Chr(39);
DModule.Group.Filtered := True;
End;
end;
end.
Модуль формы «Схема архива» (Sklad.pas)
unit Sklad;
uses Data;
{$R *.dfm}
procedure TFormSklad.Button1Click(Sender: TObject);
var
F: string;
I, J: integer;
begin
DModule.Stellag.Insert;
F := '0';
If InputQuery('Добавить стеллаж', 'Кол-во ярусов', F) then
DModule.StellagКолЯрусов.Value := StrToInt(F)
else
begin
DModule.Stellag.Cancel;
Exit;
end;
F := '0';
If InputQuery('Добавить стеллаж', 'Кол-во ячеек', F) then
DModule.StellagКолЯчеек.Value := StrToInt(F)
else
begin
DModule.Stellag.Cancel;
Exit;
end;
DModule.Stellag.Post;
for I := 1 to DModule.StellagКолЯрусов.Value do
begin
DModule.Floor.Insert;
DModule.FloorНомерСтеллажа.Value := DModule.StellagНомер.Value;
DModule.FloorНомерЯруса.Value := I;
DModule.Floor.Post;
for J := 1 to DModule.StellagКолЯчеек.Value do
begin
DModule.Cell.Insert;
DModule.CellНомерЯруса.Value := DModule.FloorКод.Value;
DModule.CellНомерЯчейки.Value := J;
DModule.Cell.Post;
end;
end;
end;
procedure TFormSklad.CreateTab(const N, M: integer);
begin
Grid := TStringGrid.Create(Application);
Grid.RowCount := M;
Grid.ColCount := N;
Grid.Visible := True;
end;
procedure TFormSklad.Find(const Field: string);
var
F: string;
begin
F := '';
If InputQuery('Поиск', Field, F) then
Begin
DModule.Group.Filter := Field + ' Like ' + Chr(39) + F + '*' + Chr(39);
DModule.Group.Filtered := True;
End;
end;
procedure TFormSklad.StringGrid1DblClick(Sender: TObject);
begin
if FormSklad.Caption = 'Схема архива документов [выбор ячейки]' then
begin
if StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] = '' then
begin
ShowMessage('Данная ячейка уже занята!');
exit;
end;
DModule.BoxНомерЯчейки.Value :=
StrToInt(StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row]);
DModule.Box.Post;
DModule.Cell.Close;
DModule.Cell.Filter := 'Код = ' +
StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];
DModule.Cell.Filtered := True;
DModule.Cell.Open;
DModule.Cell.Edit;
DModule.CellСтатус.Value := True;
DModule.Cell.Post;
DModule.Stellag.Close;
DModule.Stellag.Open;
FormSklad.Close;
end;
end;
procedure TFormSklad.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with StringGrid1 do
if (ACol <> 0) AND (ARow <> 0) AND (Cells[ACol, ARow] = '') then
StringGrid1.Canvas.StretchDraw(Rect, Image1.Picture.Graphic);
end;
end.
Модуль формы «Сканкопия документа» (Copy.pas)
unit Copy;
uses Data;
{$R *.dfm}
procedure TFormCopy.N1Click(Sender: TObject);
var
S: string;
begin
SavePictureDialog.InitialDir:=ExtractFilePath(Application.ExeName);
if SavePictureDialog.Execute then
begin
S:=ExtractFilePath(Application.ExeName)+'Архив\'+
IntToStr(DModule.DocНомер.Value)+'.bmp';
CopyFile(Pchar(SavePictureDialog.FileName), Pchar(S), true);
Image.Picture.LoadFromFile(S);
Image.Stretch := True;
end;
end;
end.
Модуль формы «Отчеты» (Report.pas)
unit Report;
uses Data;
{$R *.dfm}
procedure TFormReport.Button1Click(Sender: TObject);
begin
DModule.QRepRec.Close;
DModule.QRepRec.Parameters.ParamValues['N'] := DateToStr(DateTimePicker1.Date);
DModule.QRepRec.Parameters.ParamValues['K'] := DateToStr(DateTimePicker2.Date);
DModule.QRepRec.Open;
end;
procedure TFormReport.Button2Click(Sender: TObject);
begin
DModule.QRepTrans.Close;
DModule.QRepTrans.Parameters.ParamValues['N'] := DateToStr(DateTimePicker3.Date);
DModule.QRepTrans.Parameters.ParamValues['K'] := DateToStr(DateTimePicker4.Date);
DModule.QRepTrans.Open;
end;
procedure TFormReport.Button3Click(Sender: TObject);
begin
DModule.QRepDestr.Close;
DModule.QRepDestr.Parameters.ParamValues['N'] := DateToStr(DateTimePicker5.Date);
DModule.QRepDestr.Parameters.ParamValues['K'] := DateToStr(DateTimePicker6.Date);
DModule.QRepDestr.Open;
end;
end.
Модуль формы «Вход в систему» (Password.pas)
unit Password;
uses Data, Main;
{$R *.dfm}
procedure TFormPas.Button1Click(Sender: TObject);
begin
if Pas.Text = DModule.UserПароль.Value then
begin
FormPas.Caption := 'Вход в архив';
FormMain.AlphaBlend := False;
FormPas.Close;
end
else
begin
ShowMessage('Введенный пароль неверный!');
Pas.SetFocus;
end;
end;
procedure TFormPas.FormActivate(Sender: TObject);
begin
Pas.SetFocus;
end;
procedure TFormPas.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if FormPas.Caption = 'Вход в архив [авторизация]' then
FormMain.Close;
end;
end.
Размещено на Allbest.ru
Подобные документы
Анализ входной информации и процессов, уровня автоматизации на предприятии. Выявление объекта и задачи автоматизации. Разработка концепции построения информационной модели информационной системы. Разработка структуры базы данных и клиентского приложения.
дипломная работа [2,0 M], добавлен 22.11.2015Создание сайта в сети Интернет для информирования студентов и преподавателей о проходящих конференциях. Разработка модели "как будет" с учетом внедрения системы автоматизации. Описание сценариев элементарных функций и физической модели базы данных.
курсовая работа [2,4 M], добавлен 19.12.2015- Разработка информационной системы для автоматизации учета ремонта электрооборудования на предприятии
Архитектура и функции информационной системы для автоматизации учета ремонта электрооборудования. Построение модели прецедентов, потоков данных и процессов в стандарте IDEF0. Проектирование концептуальной и логической модели интегрированной базы данных.
курсовая работа [442,9 K], добавлен 06.08.2013 Создание и разработка информационной системы автоматизации учета книг в книжном магазине. Описание предметной области, постановка задачи и обзор методов ее решения. Модели и алгоритмы представления системы. Обоснование технических и программных средств.
курсовая работа [1,7 M], добавлен 31.03.2012Содержательное описание предметной области. Структурный анализ бизнес-процесса на основе IDEF0-модели. Построение информационно-логической модели данных. Структурная схема на основе IDEF0. Даталогическая модель данных. Реализация информационной системы.
курсовая работа [849,7 K], добавлен 10.07.2014Общие понятия реляционного похода к базам данных. Разработка программы для автоматизации функций руководителя салона сотовой связи. Детализация бизнес-процессов. Интерфейс для работы пользователя. Тестирование разработанной информационной системы.
курсовая работа [2,2 M], добавлен 26.06.2012Классификация информационных систем, назначение ИС с Web-доступом. Анализ узких мест работы учреждения, нуждающихся в автоматизации. Выбор платформы разработки, физической и логической модели данных, настройка и тестирование информационной системы.
дипломная работа [5,2 M], добавлен 10.09.2013Разработка технического задания и проекта информационной системы "Расписание занятий в вузе". Понятие, определения и сокращения. Характеристика объектов автоматизации. Даталогическая модель базы данных. Создание таблиц и построение схемы данных в БД.
курсовая работа [888,4 K], добавлен 09.02.2017Разработка программной системы автоматизации работы приемной комиссии. Выбор CASE-средства проектирования базы данных. Разграничение доступа к записям таблиц. Триггеры и функции БД. Выбор интерфейса программирования. Разработка классов и структур данных.
дипломная работа [1,9 M], добавлен 07.03.2012Проектирование информационной системы для автоматизации документооборота в области кадрового учета МОУ Гимназия № 16 г. Керчь. Объекты справочной и учетной информации. Реализация физической модели базы данных в среде СУБД. Построение логической модели БД.
курсовая работа [1,3 M], добавлен 15.08.2012