Файл: Проектирование реализации операций бизнес-процесса.pdf
Добавлен: 15.06.2023
Просмотров: 292
Скачиваний: 2
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
1.2. Характеристика существующих бизнес-процессов
1.3. Характеристика документооборота, возникающего при решении задачи
Функции и задачи создаваемой АС:
Ожидаемые технико-экономические результаты создания АС:
1.4. Обоснование проектных решений по информационному обеспечению
1.5. Обоснование проектных решений по программному обеспечению
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.4. Общие положения (дерево функций и сценарий диалога)
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
2.7. Описание программных модулей
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;