Файл: Проектирование реализации операций бизнес-процесса «Запасы-склад (приходование товара)» (Выбор комплекса задач автоматизации).pdf
Добавлен: 27.06.2023
Просмотров: 71
Скачиваний: 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 Описание программных модулей.
2.8. Контрольный пример реализации проекта и его описание.
DBGrid1: TDBGrid;
Label1: TLabel;
Edt1: TEdt;
BitBtn1: TBitBtn;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DBGrid2: TDBGrid;
Label2: TLabel;
Edt2: TEdt;
BitBtn2: TBitBtn;
Adotbl1: TAdotbl;
Adotbl1Id: TAutoIncField;
Adotbl1FIO: TWideStringField;
Adotbl1Phone: TWideStringField;
Adotbl1Address: TWideStringField;
Adotbl1Passport: TWideStringField;
DataSource1: TDataSource;
DataSource2: TDataSource;
Adotbl2: TAdotbl;
Adotbl2id: TAutoIncField;
Adotbl2caption: TWideStringField;
Adotbl2path: TWideStringField;
PopupMenu1: TPopupMenu;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
PopupMenu2: TPopupMenu;
N8: TMenuItem;
ADOQuery1: TADOQuery;
N9: TMenuItem;
N10: TMenuItem;
BitBtn3: TBitBtn;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
produre N3Click(Send: TObject);
produre BitBtn1Click(Send: TObject);
produre BitBtn2Click(Send: TObject);
produre FrmShow(Send: TObject);
produre Edt1Change(Send: TObject);
produre N7Click(Send: TObject);
produre N8Click(Send: TObject);
produre N5Click(Send: TObject);
produre N6Click(Send: TObject);
produre N4Click(Send: TObject);
produre N2Click(Send: TObject);
produre FrmResize(Send: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm1: TFrm1;
implementation
uses shabl;
{$R *.dfm}
produre TFrm1.N3Click(Send: TObject);
begin
frm1.Close;
end;
produre TFrm1.BitBtn1Click(Send: TObject);
begin
Edt1.Clear;
Edt1.SetFocus;
end;
produre TFrm1.BitBtn2Click(Send: TObject);
begin
Edt2.Clear;
Edt2.SetFocus;
end;
produre TFrm1.FrmShow(Send: TObject);
begin
Adotbl1.open;
Adotbl1.Sort:='FIO ASC';
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);
Adotbl2.open;
Adotbl2.Sort:='caption ASC';
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);
end;
produre TFrm1.Edt1Change(Send: TObject);
begin
if Edt1.text<>'' then
begin
DbGrid1.DataSource.DataSet.Filtered:=false;
DbGrid1.DataSource.DataSet.Filter:='FIO like %'+Edt1.Text+'%';
DbGrid1.DataSource.DataSet.Filtered:=true;
end
else
begin
DbGrid1.DataSource.DataSet.Filtered:=false;
DbGrid1.DataSource.DataSet.Filter:='';
end;
end;
produre TFrm1.N7Click(Send: TObject);
begin
Dbgrid2.DataSource.DataSet.Close;
DbGrid2.DataSource.DataSet.open;
Adotbl2.Sort:='caption ASC';
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);
end;
produre TFrm1.N8Click(Send: TObject);
begin
Dbgrid1.DataSource.DataSet.Close;
DbGrid1.DataSource.DataSet.open;
Adotbl1.Sort:='FIO ASC';
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);
end;
produre TFrm1.N5Click(Send: TObject);
begin
if not DbGrid1.DataSource.DataSet.FieldByName('id').IsNull then
begin
Frm2.Edt1.Text:=DbGrid2.DataSource.DataSet.FieldByName('caption').AsString;
Frm2.Edt2.Text:=DbGrid2.DataSource.DataSet.FieldByName('path').AsString;
Frm2.Caption:='Редактирование шаблона';
Frm2.Label3.Caption:= DbGrid2.DataSource.DataSet.FieldByName('id').AsString;
Frm2.show;
end;
end;
produre TFrm1.N6Click(Send: TObject);
var
s: string;
begin
s := InputBox('Ввод данных','Необходимо указать название нового шаблона','');
if s<>'' then
begin
With AdoQuery1 do
begin
close;
SQL.Clear;
SQl.add('INSERT INTO shablon (caption) VALUES ( :caption )');
Parameters.ParamByName('caption').Value:=s;
EXECSQL;
end;
n7.Click;
end;
end;
produre TFrm1.N4Click(Send: TObject);
var
Word:Variant;
begin
if not DBGrid1.DataSource.DataSet.FieldByName('id').IsNull then
begin
if fileExists(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString) then
begin
Word := CreateOleObject('Word.Application');
Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);
Word.visible:=true;
end
else
begin
Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' не найден в папке shablon.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');
end;
end;
end;
produre TFrm1.N2Click(Send: TObject);
begin
n7.Click;
n8.Click;
end;
produre TFrm1.FrmResize(Send: TObject);
begin
panel1.Width:=Round((frm1.Width-50)*0.5);
panel2.Width:=Round((frm1.Width-50)*0.5);
panel1.Width:=Round(frm1.Width*0.5);
BitBtn3.Left:=Round(panel5.Width*0.5)-Round(Bitbtn3.Width*0.5);
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.26);
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.26);
end;
end.
unit shabl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Frms,
Dialogs, StdCtrls, Buttons, DB, ADODB, comobj;
type
TFrm2 = class(TFrm)
Label1: TLabel;
Label2: TLabel;
Edt1: TEdt;
BitBtn1: TBitBtn;
Edt2: TEdt;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
OpenDialog1: TOpenDialog;
Label3: TLabel;
ADOQuery1: TADOQuery;
produre BitBtn3Click(Send: TObject);
produre Edt1Change(Send: TObject);
produre Edt2Change(Send: TObject);
produre BitBtn1Click(Send: TObject);
produre BitBtn2Click(Send: TObject);
produre FrmClose(Send: TObject; var Action: TCloseAction);
produre BitBtn4Click(Send: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm2: TFrm2;
implementation
Uses main;
{$R *.dfm}
produre TFrm2.BitBtn3Click(Send: TObject);
begin
Frm2.Close;
end;
produre TFrm2.Edt1Change(Send: TObject);
begin
if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';
end;
produre TFrm2.Edt2Change(Send: TObject);
begin
if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';
end;
produre TFrm2.BitBtn1Click(Send: TObject);
begin
openDialog1.InitialDir := GetCurrentDir;
if opendialog1.Execute then
begin
if FileExists(opendialog1.FileName) then
begin
Edt2.Text:=Opendialog1.FileName;
end;
end;
end;
produre TFrm2.BitBtn2Click(Send: TObject);
begin
if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;
if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;
if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;
if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;
With AdoQuery1 do
begin
close;
SQl.clear;
SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');
Parameters.ParamByName('caption').value:=Edt1.text;
Parameters.ParamByName('path').value:=ExtractFileName(OpenDialog1.Filename);
Parameters.ParamByName('id').value:=label3.caption;
execSQL;
end;
CopyFile(Pchar(Edt2.text), Pchar(ExtractFilePath(ParamStr(0))+'shablon\'+ExtractFileName(OpenDialog1.Filename)), true) ;
caption:=copy(caption,0,length(caption)-2);