Диплом: Автоматизация и обеспечение информационной безопасности процесса приема техники на ремонтные работы в ОАО

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
и др. - М.: Дашков и К, 2016. – 388 c.
Данелян, Т. Я. Экономические информационные системы (ЭИС) предприятий и
организаций: Монография. / Т. Я. Данелян. - М.: ЮНИТИ, 2015. – 284 c.
26. Ипатова, Э. Р. Методологии и технологии системного проектирования
информационных систем / Э. Р. Ипатова, Ю. В. Ипатов. - М.: Флинта, 2016. – 256 c.
7. Приложение
unit uTypes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, Grids, DBGrids;
type
TfmType = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
bbtExit: TBitBtn;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmType: TfmType;
implementation
uses uDM, uInventory;
{$R *.dfm}
procedure TfmType.FormShow(Sender: TObject);
begin
DM.dstTypes2.Open;
DM.dstTypes2.Sort := 'Наименование'
end;
procedure TfmType.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstTypes2.Close;
end;
end.
unit uStatus;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, Grids, DBGrids;
type
TfmStatus = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
bbtExit: TBitBtn;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmStatus: TfmStatus;
implementation
uses uDM, uInventory;
{$R *.dfm}
procedure TfmStatus.FormShow(Sender: TObject);
begin
DM.dstStatus.Open;
DM.dstStatus.Sort := 'Состояние';
end;
end.
unit uSellers;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, Grids, DBGrids;
type
TfmSellers = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
bbtExit: TBitBtn;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmSellers: TfmSellers;
implementation
uses uDM, uIncome;
{$R *.dfm}
procedure TfmSellers.FormShow(Sender: TObject);
begin
DM.dstSellers.Open;
end;
procedure TfmSellers.FormClose(Sender: TObject; var Action: TCloseAction);
//Набор данных остается открытым, если открыты формы, где он используется:
if not fmIncome.Showing then
DM.dstSellers.Close;
end;
end.
unit uRequests;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ActnList, StdActns, ActnMan, StdCtrls, Buttons, Grids,
DBGrids, ToolWin, ActnCtrls, ActnMenus, ExtCtrls, DBCtrls, Mask, ComCtrls;
type
TfmRequests = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
bbtExit: TBitBtn;
Panel2: TPanel;
Panel3: TPanel;
Splitter2: TSplitter;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Label5: TLabel;
DBLookupComboBox2: TDBLookupComboBox;
Label6: TLabel;
DBLookupComboBox3: TDBLookupComboBox;
Label7: TLabel;
DBLookupComboBox4: TDBLookupComboBox;
DBMemo1: TDBMemo;
Label9: TLabel;
DBEdit2: TDBEdit;
GroupBox1: TGroupBox;
chbDate1: TCheckBox;
dtpDate1: TDateTimePicker;
chbDate2: TCheckBox;
dtpDate2: TDateTimePicker;
chbState: TCheckBox;
dblcbState: TDBLookupComboBox;
chbPlace: TCheckBox;
dblcbPlace: TDBLookupComboBox;
chbEmp: TCheckBox;
dblcbEmp: TDBLookupComboBox;
DBGrid1: TDBGrid;
Label8: TLabel;
DBEdit4: TDBEdit;
Label10: TLabel;
DBEdit5: TDBEdit;
procedure FormShow(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure chbDate1Click(Sender: TObject);
procedure DBGrid1Enter(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmRequests: TfmRequests;
implementation
uses uDepartments, uEmployees, uParameters, uTypes, uDM, uInventory,
ADODB, DB, uRep, uInventList, uProducers, uPlacesList,
uStatus;
{$R *.dfm}
procedure TfmRequests.FormShow(Sender: TObject);
begin
DM.dstRequest.Open;
end;
//Сортировка списка заказов по полю, по загаловку которого сделан клик мышью:
procedure TfmRequests.DBGrid1TitleClick(Column: TColumn);
begin
if Column.Field.FieldName = 'Состояние' then
DM.dstRequest.Sort := 'СостояниеID'
else if Column.Field.FieldName = 'Инцидент' then
DM.dstRequest.Sort := 'ИнцидентID'
else if Column.Field.FieldName = 'РабМесто' then
DM.dstRequest.Sort := 'РабМестоID'
else if Column.Field.FieldName = 'Исполнитель' then
DM.dstRequest.Sort := 'ИсполнительID'
else
DM.dstRequest.Sort := Column.Field.FieldName;
//Отбор заказов по выбранным критериям:
procedure TfmRequests.chbDate1Click(Sender: TObject);
var
Filter: string;
begin
Filter := '';
if chbDate1.Checked then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'ДатаВремяПриема >= ' + QuotedStr(DateToStr(dtpDate1.Date));
end;
if chbDate2.Checked then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'ДатаВремяПриема <= ' + QuotedStr(DateToStr(dtpDate2.Date));
end;
if chbState.Checked and (dblcbState.KeyValue <> Null) then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'СостояниеID = ' + IntToStr(dblcbState.KeyValue);
end;
if chbPlace.Checked and (dblcbPlace.KeyValue <> Null) then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'РабМестоID = ' + IntToStr(dblcbPlace.KeyValue);
end;
if chbEmp.Checked and (dblcbEmp.KeyValue <> Null) then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'ИсполнительID = ' + IntToStr(dblcbEmp.KeyValue);
end;
if Filter <> '' then
begin
DM.dstRequest.Filter := Filter;
DM.dstRequest.Filtered := True;
end
else
DM.dstRequest.Filtered := False;
//DBNavigator1 привязывается к выбранному DBGrid'у и соответствующему набору
данных:
procedure TfmRequests.DBGrid1Enter(Sender: TObject);
begin
DBNavigator1.DataSource := (Sender as TDBGrid).DataSource;
//Выделение цветом заказов в зависимости от состояния:
procedure TfmRequests.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DM.dstRequest.FieldByName('Состояние').AsString = 'Выполнен' then
DBGrid1.Canvas.Font.Color := clBlue
else if (DM.dstRequest.FieldByName('Состояние').AsString = 'Передан на исполнение')
or
(DM.dstRequest.FieldByName('Состояние').AsString = 'Повторный') then
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TfmRequests.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstRequest.Close;
end;
e
n
d
//Модуль для формирования отчетов и документов
interface
uses
Windows, SysUtils, Classes, ComObj, DB, Controls, Forms, ADODB, Math, DBGrids;
procedure Rep_Universal(ADBGrid: TDBGrid; NumCol: Integer; ACaption: string);
procedure Rep_Passport(DeviceID: Integer);
procedure Rep_DeviceMove;
procedure Rep_AllPlacesEquipment;
implementation
uses
uDM, DateUtils, Dialogs;
//Формирование отчета по выбранному набору данных (вывод заголовков видимых
//полей и их значений):
procedure Rep_Universal(ADBGrid: TDBGrid; NumCol: Integer; ACaption: string);
var
Excel: Variant;
i, j, Width: Integer;
begin
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Application.EnableEvents := False;
Excel.Workbooks.Add;
for i:=0 to NumCol-1 do
begin
//Вывод в шапку таблицы названий полей из DBGrid'а:
Excel.Cells[5,i+1] := ADBGrid.Columns[i].Title.Caption;
//Форматирование заголовка:
Width := Min(30, Trunc(ADBGrid.Columns[i].Width * 0.2));
Excel.Cells[5,i+1].ColumnWidth := Width;
Excel.Cells[5,i+1].Font.Bold := True;
end;
Excel.Cells[1,1] := Date;
Excel.Cells[3,1] := ACaption;
Excel.Cells[3,1].Font.Bold := True;
Excel.Cells[3,1].Font.Size := 12;
i := 5;
//Экспорт данных из таблиц БД:
with ADBGrid.DataSource.DataSet do
begin
DisableControls; //Отключаем сетку на время формирования отчета
First;
while not Eof do
begin
I
n
c
i
//Выводятся NumCol первых полей таблицы, отображенных в DBGrid'е:
for j:=0 to NumCol-1 do
Excel.Cells[i,j+1] := FieldByName(ADBGrid.Columns[j].FieldName).AsString;
Next;
end;
end; //with
Excel.Application.EnableEvents := True;
Excel.Visible := True;
except
Excel.Quit;
end;
finally
ADBGrid.DataSource.DataSet.EnableControls;
Screen.Cursor := crDefault;
ADBGrid.Enabled := True;
//Формирование паспорта устройства:
procedure Rep_Passport(DeviceID: Integer);
var
Excel: Variant;
WorkbookName: string;
PosInc, i: Integer;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Шаблоны\' + 'Паспорт устройства.xlt';
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблицы БД:
with DM do
begin
dstAllDevices.Open;
if dstAllDevices.Locate('ИнвN', DeviceID, []) then
begin
Excel.Cells[1,7] := DeviceID;
Excel.Cells[3,4] := dstAllDevices.FieldByName('Тип').AsString;
Excel.Cells[4,4] := dstAllDevices.FieldByName('Наименование').AsString;
Excel.Cells[5,4] := DeviceID;
Excel.Cells[6,4] := dstAllDevices.FieldByName('СерийныйN').AsString;
Excel.Cells[7,4] := dstAllDevices.FieldByName('Профилактика').AsString;
Excel.Cells[8,4] := dstAllDevices.FieldByName('Амортизация').AsString;
Excel.Cells[3,12] := dstAllDevices.FieldByName('Поставщик').AsString;
if not dstAllDevices.FieldByName('Счет').IsNull then
Excel.Cells[4,12] := '№ ' + dstAllDevices.FieldByName('Счет').AsString +
' от ' + dstAllDevices.FieldByName('СчетДата').AsString;
if not dstAllDevices.FieldByName('СчетФактура').IsNull then
Excel.Cells[5,12] := '№ ' + dstAllDevices.FieldByName('СчетФактура').AsString +
' от ' + dstAllDevices.FieldByName('СчетФактураДата').AsString;
if not dstAllDevices.FieldByName('Накладная').IsNull then
Excel.Cells[6,12] := '№ ' + dstAllDevices.FieldByName('Накладная').AsString +
' от ' + dstAllDevices.FieldByName('НакладнаяДата').AsString;
Excel.Cells[7,12] := dstAllDevices.FieldByName('Цена').AsFloat;
//Экспорт данных из таблиц БД:
dstHistoryMove.Parameters.ParamByName('pInvN').Value := DeviceID;
dstHistoryMove.Open;
dstHistoryMove.First;
while not dstHistoryMove.Eof do
begin
//Добавление новой строки:
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := dstHistoryMove.FieldByName('Дата').AsString;
Excel.Cells[i+PosInc,3] :=
dstHistoryMove.FieldByName('Подразделение').AsString;
Excel.Cells[i+PosInc,8] := dstHistoryMove.FieldByName('РабМесто').AsString;
Excel.Cells[i+PosInc,13] := dstHistoryMove.FieldByName('СетевоеИмя').AsString;
dstHistoryMove.Next;
Inc(i);
end; //while
dstHistoryMove.Close;
end; //if Locate
dstAllDevices.Close;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
end;
//Формирование накладной на внутреннее перемещение:
procedure Rep_DeviceMove;
var Excel: Variant;
WorkbookName: string;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Шаблоны\Накладная на перемещение.xlt';
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблиц БД:
with DM do
begin
Excel.Cells[16,111] := Date;
Excel.Cells[22,11] := DM.dstDevicesAtPlace.FieldByName('Устройство').AsString;
Excel.Cells[22,60] := DM.dstDevicesAtPlace.FieldByName('ДатаВвода').AsString;
Excel.Cells[22,81] := FormatFloat('0000',
DM.dstDevicesAtPlace.FieldByName('ИнвN').AsInteger);
Excel.Cells[22,118] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
Excel.Cells[22,141] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
Excel.Cells[56,141] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
end;
//Формирование отчета "Устройства по рабочим местам":
procedure Rep_AllPlacesEquipment;
var
Excel: Variant;
i: Integer;
Caption: string;
begin
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Application.EnableEvents := False;
Excel.Workbooks.Add;
Excel.Cells[1,1] := Date;
Excel.Cells[3,3] := 'Устройства по рабочим местам';
Excel.Cells[3,3].Font.Bold := True;
Excel.Cells[3,3].Font.Size := 14;
i := 5;
DM.dstPlaces2.Open;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)