Файл: Проектирование реализации операций бизнес-процесса.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 15.06.2023

Просмотров: 292

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. АНАЛИТИЧЕСКАЯ ЧАСТЬ

1.1. Выбор комплекса задач автоматизации

1.2. Характеристика существующих бизнес-процессов

1.3. Характеристика документооборота, возникающего при решении задачи

Функции и задачи создаваемой АС:

Ожидаемые технико-экономические результаты создания АС:

1.4. Обоснование проектных решений по информационному обеспечению

1.5. Обоснование проектных решений по программному обеспечению

2. ПРОЕКТНАЯ ЧАСТЬ

2.1. Информационная модель и её описание

2.2. Характеристика нормативно-справочной, входной и оперативной информации

2.3. Характеристика результатной информации

2.4. Общие положения (дерево функций и сценарий диалога)

2.5. Характеристика базы данных

2.6. Структурная схема пакета (дерево вызова программных модулей)

2.7. Описание программных модулей

2.8. Контрольный пример реализации проекта и его описание

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

Приложение

Excel.Cells[37,7] := dstEmployee.FieldByName('АдресРегистр').AsString;

Excel.Cells[41,7] := dstEmployee.FieldByName('Телефон').AsString;

Excel.Cells[43,8] := dstEmployee.FieldByName('ИНН').AsString;

Excel.Cells[44,8] := dstEmployee.FieldByName('ПенсСвид').AsString;

Excel.Cells[46,8] := dstEmployee.FieldByName('ДокументСерия').AsString +

' ' + dstEmployee.FieldByName('ДокументНомер').AsString;

Excel.Cells[48,9] := dstEmployee.FieldByName('ДокументДата').AsString;

Excel.Cells[51,7] := dstEmployee.FieldByName('Фамилия').AsString + ' ' +

dstEmployee.FieldByName('Имя').AsString[1] + '. ' +

dstEmployee.FieldByName('Отчество').AsString[1] + '. ';

dstRequisite.Close;

dstDepartments.Close;

//Набор данных закрываем только если нет других открытых форм, связанных с данным набором:

if not fmEmpCard.Showing then

dstEmpPosts.Close;

end; //with

Excel.Visible := True;

except

Excel.Quit;

end;

end;

//Формирование приказа о командировке:

procedureRep_Mission;

var

Excel: Variant;

WorkbookName: string;

begin

//ШаблонхранитсявпапкеШаблоны:

WorkbookName := GetCurrentDir + '\Шаблоны\' + 'Приказокомандировке.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблицы БД:

with DM do

begin

dstRequisite.Open;

dstEmpPosts.Open;

dstDepartments.Open;

//Выводреквизитов:

Excel.Cells[9,2] := dstRequisite.FieldByName('НаименованиеОрг').AsString;

Excel.Cells[38,5] := dstRequisite.FieldByName('РукДолжн').AsString;

Excel.Cells[38,12] := dstRequisite.FieldByName('РукФИО').AsString;

Excel.Cells[12,13] := Date;

Excel.Cells[41,12] := GetRightDate(Date);

Excel.Cells[12,12] := dstEmployee.FieldByName('ТабN').AsString + '5';

Excel.Cells[17,2] := dstEmployee.FieldByName('Фамилия').AsString + ' ' +

dstEmployee.FieldByName('Имя').AsString + ' ' +

dstEmployee.FieldByName('Отчество').AsString;

Excel.Cells[17,14] := FormatFloat('0000', dstEmployee.FieldByName('ТабN').AsInteger);

if dstDepartments.Locate('ID', dstEmpPosts.FieldByName('ОтделID').AsInteger, []) then

Excel.Cells[19,2] := dstDepartments.FieldByName('Отдел').AsString;

Excel.Cells[21,2] := dstEmpPosts.FieldByName('Должность').AsString;

Excel.Cells[23,2] := dstMission.FieldByName('МестоНазначения').AsString;

Excel.Cells[28,3] := DaysBetween(dstMission.FieldByName('ДатаС').AsDateTime,

dstMission.FieldByName('ДатаПо').AsDateTime);

Excel.Cells[29,3] := GetRightDate(dstMission.FieldByName('ДатаС').AsDateTime) +

' по ' + GetRightDate(dstMission.FieldByName('ДатаПо').AsDateTime);

Excel.Cells[30,3] := dstMission.FieldByName('Цель').AsString;

dstRequisite.Close;

dstDepartments.Close;

//Набор данных закрываем только если нет других открытых форм, связанных с данным набором:

if not fmEmpCard.Showing then

dstEmpPosts.Close;

end; //with

Excel.Visible := True;

except

Excel.Quit;

end;

end;

//Формирование анкеты застрахованного лица:

procedureRep_Insurance;

var

Excel: Variant;

WorkbookName: string;

begin

//ШаблонхранитсявпапкеШаблоны:

WorkbookName := GetCurrentDir + '\Шаблоны\' + 'Анкетазастрахованноголица.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблицы БД:

with DM do

begin

dstEmpPosts.Open;

dstDepartments.Open;

Excel.Cells[9,7] := dstEmployee.FieldByName('Фамилия').AsString;

Excel.Cells[10,7] := dstEmployee.FieldByName('Имя').AsString;


Excel.Cells[11,7] := dstEmployee.FieldByName('Отчество').AsString;

Excel.Cells[12,7] := dstEmployee.FieldByName('Пол').AsString[1];

Excel.Cells[13,9] := GetRightDate(dstEmployee.FieldByName('ДатаРождения').AsDateTime);

Excel.Cells[15,12] := dstEmployee.FieldByName('РождГород').AsString;

Excel.Cells[16,12] := dstEmployee.FieldByName('РождРайон').AsString;

Excel.Cells[17,12] := dstEmployee.FieldByName('РождОбласть').AsString;

Excel.Cells[18,12] := dstEmployee.FieldByName('РождСтрана').AsString;

Excel.Cells[21,15] := dstEmployee.FieldByName('АдресРегистрИндекс').AsString;

Excel.Cells[21,21] := dstEmployee.FieldByName('АдресРегистр').AsString;

if dstEmployee.FieldByName('АдресРегистр').AsString <>

dstEmployee.FieldByName('АдресФакт').AsString then

begin

Excel.Cells[24,15] := dstEmployee.FieldByName('АдресФактИндекс').AsString;

Excel.Cells[24,21] := dstEmployee.FieldByName('АдресФакт').AsString;

end;

Excel.Cells[33,12] := dstEmployee.FieldByName('ВидДокумента').AsString;

Excel.Cells[35,12] := dstEmployee.FieldByName('ДокументСерия').AsString +

' ' + dstEmployee.FieldByName('ДокументНомер').AsString;

Excel.Cells[36,12] := dstEmployee.FieldByName('ДокументДата').AsString;

Excel.Cells[37,12] := dstEmployee.FieldByName('ДокументВыдан').AsString;

dstDepartments.Close;

//Набор данных закрываем только если нет других открытых форм, связанных с данным набором:

if not fmEmpCard.Showing then

dstEmpPosts.Close;

end; //with

Excel.Visible := True;

except

Excel.Quit;

end;

end;

//Формирование описи документов в ПФР:

procedure Rep_DocumentsPFR;

var

Excel: Variant;

WorkbookName: string;

begin

//ШаблонхранитсявпапкеШаблоны:

WorkbookName := GetCurrentDir + '\Шаблоны\' + 'ОписьдокументоввПФР.xlt';

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Open(WorkbookName);

//Экспорт данных из таблицы БД:

with DM do

begin

dstRequisite.Open;

//Выводреквизитов:

Excel.Cells[5,10] := dstRequisite.FieldByName('РегНомерПФР').AsString;

Excel.Cells[6,3] := dstRequisite.FieldByName('ИНН').AsString;

Excel.Cells[6,14] := dstRequisite.FieldByName('КПП').AsString;

Excel.Cells[7,12] := dstRequisite.FieldByName('НаименованиеОрг').AsString;

Excel.Cells[47,2] := dstRequisite.FieldByName('РукДолжн').AsString;

Excel.Cells[47,23] := dstRequisite.FieldByName('РукФИО').AsString;

Excel.Cells[49,2] := Date;

dstRequisite.Close;

end; //with

Excel.Visible := True;

except

Excel.Quit;

end;

end;

//Список сотрудников по отделам:

procedureRep_EmpList;

var

Excel: Variant;

i: Integer;

begin

//Шаблон хранится в папке Шаблоны:

Excel := CreateOleObject('Excel.Application');

try

Excel.Workbooks.Add;

Excel.Cells[1,1] := Date;

Excel.Cells[3,1] := 'Список сотрудников по отделам';

Excel.Cells[3,1].Font.Bold := True;

Excel.Cells[3,1].Font.Size := 12;

//Экспорт данных из таблицы БД:

with DM do

begin

dstEmployeeByDep.DisableControls;

dstDepartments.Open;

//Формирование таблицы:

i := 6;

dstEmployeeByDep.Close;

dstEmployeeByDep.Parameters.ParamByName('pDismiss').DataType := ftBoolean;

dstEmployeeByDep.Parameters.ParamByName('pDismiss').Value := False;

dstDepartments.First;

//Циклпоотделам:

while not dstDepartments.Eof do

begin

dstEmployeeByDep.Close;

dstEmployeeByDep.Parameters.ParamByName('pDismiss').DataType := ftInteger;

dstEmployeeByDep.Parameters.ParamByName('pDepID').Value := dstDepartments.FieldByName('ID').AsInteger;


dstEmployeeByDep.Open;

Excel.Cells[i,1] := dstDepartments.FieldByName('Отдел').AsString;

Excel.Cells[i,1].Font.Bold := True;

Excel.Cells[i,1].Font.Size := 11;

Inc(i);

if dstEmployeeByDep.RecordCount > 0 then

begin

//Заголовкистолбцов:

Excel.Cells[i,1] := 'ФИО';

Excel.Cells[i,1].ColumnWidth := 40;

Excel.Cells[i,1].Font.Bold := True;

Excel.Cells[i,2] := 'Должность';

Excel.Cells[i,2].ColumnWidth := 40;

Excel.Cells[i,2].Font.Bold := True;

Inc(i);

end;

//Цикл по работникам в отделе:

dstEmployeeByDep.First;

while not dstEmployeeByDep.Eof do

begin

Excel.Cells[i,1] := dstEmployeeByDep.FieldByName('ФИО').AsString;

Excel.Cells[i,2] := dstEmployeeByDep.FieldByName('Должность').AsString;

dstEmployeeByDep.Next;

Inc(i);

end;

Inc(i);

dstDepartments.Next;

end;

dstDepartments.Close;

end; //with

Excel.Visible := True;

except

Excel.Quit;

end;

end;

end.

unit uRequisite;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Mask, DBCtrls, Buttons;

type

TfmRequisite = class(TForm)

Label1: TLabel;

Label2: TLabel;

DBEdit2: TDBEdit;

Label3: TLabel;

DBEdit3: TDBEdit;

Label4: TLabel;

DBEdit4: TDBEdit;

Label5: TLabel;

DBEdit5: TDBEdit;

Label6: TLabel;

DBEdit6: TDBEdit;

Label7: TLabel;

DBEdit7: TDBEdit;

Label8: TLabel;

DBEdit8: TDBEdit;

Label9: TLabel;

DBEdit9: TDBEdit;

Label10: TLabel;

DBEdit10: TDBEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBMemo1: TDBMemo;

procedure FormShow(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmRequisite: TfmRequisite;

implementation

uses uDM, DB;

{$R *.dfm}

procedure TfmRequisite.FormShow(Sender: TObject);

begin

DM.dstRequisite.Open;

end;

procedure TfmRequisite.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

DM.dstRequisite.Close;

end;

procedure TfmRequisite.BitBtn1Click(Sender: TObject);

begin

if DM.dstRequisite.State = dsEdit then

DM.dstRequisite.Post;

Close;

end;

procedure TfmRequisite.BitBtn2Click(Sender: TObject);

begin

DM.dstRequisite.Cancel;

Close;

end;

end.

unit uStaff;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons, ComCtrls;

type

TfmStaff = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

bbtPrint: TBitBtn;

BitBtn1: TBitBtn;

TreeView1: TTreeView;

Splitter1: TSplitter;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure bbtPrintClick(Sender: TObject);

procedure TreeView1Change(Sender: TObject; Node: TTreeNode);

procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmStaff: TfmStaff;

implementation

uses uDM, uRep, uMain, uEmpCard;

{$R *.dfm}

procedure TfmStaff.FormShow(Sender: TObject);

var

CategTreeNode: TTreeNode;

begin

TreeView1.Items.Clear;

DM.dstStaff.Open;

DM.dstStaff.Filtered := True;

DM.dstDepartments.Open;

DM.dstDepartments.Sort := 'Отдел';

DM.dstDepartments.First;

while not DM.dstDepartments.Eof do

begin

//Добавлениевершины - подразделения:

CategTreeNode := TreeView1.Items.Add(nil, DM.dstDepartments.FieldByName('Отдел').AsString);


//Data указывает на ID подразделения:

CategTreeNode.Data := Pointer(DM.dstDepartments.FieldByName('ID').AsInteger);

CategTreeNode.ImageIndex := 1;

DM.dstDepartments.Next;

end;

TreeView1.Items[0].Selected := True;

DM.dstPosts.Sort := 'Должность';

end;

procedure TfmStaff.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.dstStaff.Filtered := False;

//Набор данных закрываем только если нет других открытых форм, связанных с данным набором:

if not fmEmpCard.Showing then

DM.dstStaff.Close;

end;

procedure TfmStaff.bbtPrintClick(Sender: TObject);

begin

Rep_Staff;

end;

//Отображение списка штатных единиц в выбранном отделе:

procedure TfmStaff.TreeView1Change(Sender: TObject; Node: TTreeNode);

begin

DM.dstStaff.Filter := 'ОтделID = ' + IntToStr(Integer(Node.Data));

end;

//Колонка "Вакансий" выделяется цветом, если вакансии есть:

procedure TfmStaff.DBGrid1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

begin

if Column.FieldName = 'Вакансий' then

if DM.dstStaff.FieldByName(Column.FieldName).AsInteger > 0 then

begin

DBGrid1.Canvas.Brush.Color := clMoneyGreen;

DBGrid1.Canvas.Font.Color := clRed;

end;

DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

end.

unit uVacancyList;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;

type

TfmVacancyList = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

bbtPrint: TBitBtn;

BitBtn1: TBitBtn;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure bbtPrintClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmVacancyList: TfmVacancyList;

implementation

uses uDM, uRep;

{$R *.dfm}

procedure TfmVacancyList.FormShow(Sender: TObject);

begin

DM.dstVacancyList.Open;

DM.dstVacancyList.Filter := 'Вакансий> 0';

DM.dstVacancyList.Filtered := True;

end;

procedure TfmVacancyList.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.dstVacancyList.Close;

end;

procedure TfmVacancyList.bbtPrintClick(Sender: TObject);

begin

Rep_Universal(DBGrid1, 7, fmVacancyList.Caption);

end;

end.

unit uVacation;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;

type

TfmVacation = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

bbtPrint: TBitBtn;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure bbtPrintClick(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmVacation: TfmVacation;

implementation

uses uDM, uRep;

{$R *.dfm}

procedure TfmVacation.FormShow(Sender: TObject);

begin

DM.dstVacation.Open;

end;

procedure TfmVacation.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DM.dstVacation.Close;

end;

procedure TfmVacation.bbtPrintClick(Sender: TObject);

begin

Rep_Universal(DBGrid1, 6, fmVacation.Caption);

end;

procedure TfmVacation.BitBtn2Click(Sender: TObject);

begin

Rep_Vacation;

end;

end.

unit uVacationTypes;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;