Скачиваний:
9
Добавлен:
17.06.2023
Размер:
1.08 Mб
Скачать

ПРИЛОЖЕНИЕ А

Функциональная модель информационной системы по стандарту IDEF0 и методологии SADT

Функциональная модель представлена на рисунках А.1-А.6.

Рисунок А.1 – Бизнес - процесс

Рисунок А.2 –Декомпозиция процесса

22

Рисунок А.3 – Декомпозиция процесса «Планирование работ»

Рисунок А.4 – Декомпозиция процесса «Создание нового пользователя»

23

Рисунок А.6 – Декомпозиция процесса «Формирование отчета»

24

ПРИЛОЖЕНИЕ Б Свойства полей

Рисунок Б. 1 – Свойтсво полей таблицы «Prem»

Рисунок Б. 2 – Свойтсво полей таблицы «Prod»

Рисунок Б. 3 – Свойтсво полей таблицы «Rab»

Рисунок Б. 4 – Свойтсво полей таблицы «rCen»

Рисунок Б. 5 – Свойтсво полей таблицы «pass»

25

Рисунок Б. 6 – Свойтсво полей таблицы «Tabel»

26

ПРИЛОЖЕНИЕ В Листинг программы

unit pass;

 

showmessage('База данных по

программы',mb_yesno+mb_iconqu

interface

 

указанному пути не

estion)=idyes then

uses

 

найдена!');

 

begin

Windows, Messages,

exit;

 

showmessage('Программа

SysUtils, Variants, Classes,

end;

 

будет закрыта!');

Graphics, Controls, Forms,

try

 

application.Terminate;

Dialogs, Buttons, StdCtrls,

dm.ADO.Connected:=false;

end

ExtCtrls,inifiles;

dm.ADO.ConnectionString:='Pro

else canclose:=false;

type

 

vider=Microsoft.Jet.OLEDB.4.0

end;

TFpass = class(TForm)

;Data Source='+dbp+';Persist

procedure

Panel1: TPanel;

Security Info=False';

TFpass.BitBtn1Click(Sender:

Panel2: TPanel;

dm.ADO.Connected:=true;

TObject);

BitBtn1: TBitBtn;

except

 

begin

BitBtn2: TBitBtn;

showmessage('Произошла ошибка

if e1.Text='' then

Label1: TLabel;

при подключении к базе');

showmessage('Вы не ввели имя

e1: TEdit;

exit;

 

пользователя')

Label2: TLabel;

end;

 

else if e2.Text='' then

e2: TEdit;

end;

 

showmessage('Вы не ввели

Label3: TLabel;

procedure

 

пароль')

e3: TEdit;

TFpass.SpeedButton1Click(Send

else

SpeedButton1:

er: TObject);

 

begin

TSpeedButton;

 

var inifile:tinifile;

dm.temp.Active:=false;

procedure

 

dbp:string;

 

 

FormShow(Sender: TObject);

begin

 

dm.temp.CommandText:='select

procedure

 

if dm.od.Execute then

log from pass where

SpeedButton1Click(Sender:

begin

 

(login="'+e1.Text+'") and

TObject);

 

e3.Text:=dm.od.FileName;

(pass="'+e2.Text+'")';

procedure

 

try

 

dm.temp.Active:=true;

BitBtn2Click(Sender:

dm.ADO.Connected:=false;

if dm.temp.RecordCount>0

TObject);

 

dm.ADO.ConnectionString:='Pro

then

procedure

 

vider=Microsoft.Jet.OLEDB.4.0

begin

FormCloseQuery(Sender:

;Data

 

if

TObject; var CanClose:

Source='+dm.od.FileName+';Per

dm.temp.Fields[0].AsBoolean=t

Boolean);

 

sist Security Info=False';

rue then

procedure

 

dm.ADO.Connected:=true;

begin

BitBtn1Click(Sender:

except

 

fpass.Hide;

TObject);

 

showmessage('Произошла

fmain.showmodal;

private

 

ошибка при подключении к

end

{ Private declarations }

базе');

 

else

public

 

exit;

 

begin

{ Public declarations }

end;

 

 

end;

 

IniFile

:=

fmain.N4.Visible:=false;

var

 

TIniFile.Create(ExtractFilePa

 

Fpass: TFpass;

th(Application.ExeName)+'opti

fmain.N2.Visible:=false;

implementation

ons.ini');

//

fpass.Hide;

uses datm, main;

загрузка из фала настроек

fmain.showmodal;

{$R *.dfm}

 

пути к базе

 

end;

procedure

 

 

 

end

TFpass.FormShow(Sender:

inifile.WriteString('Options'

else

TObject);

 

, 'DBPath', dm.od.FileName);

begin

var inifile:tinifile;

IniFile.Free;

 

showmessage('Проверьте

dbp:string;

 

end;

 

правильность пароля');

begin

 

end;

 

exit;

IniFile

:=

procedure

 

end;

TIniFile.Create(ExtractFilePa

TFpass.BitBtn2Click(Sender:

end;

th(Application.ExeName)+'opti

TObject);

 

end;

ons.ini');

//

begin

 

end.

загрузка из фала настроек

closequery;

 

program Psixi;

пути к базе

 

end;

 

uses

DBP :=

 

procedure

 

Forms,

IniFile.ReadString('Options',

TFpass.FormCloseQuery(Sender:

pass in 'pass.pas' {Fpass},

'DBPath',

 

TObject; var CanClose:

datm in 'datm.pas' {dm:

ExtractFilePath(Application.E

Boolean);

 

TDataModule},

xeName)+'');

 

begin

 

main in 'main.pas' {fmain},

e3.Text:=dbp;

 

if application.MessageBox('Вы

Chpass in 'Chpass.pas'

IniFile.Free;

 

хотите выйти из

 

{FChpass},

if fileexists(dbp)=false then

программы?','Выход из

diagnoz in 'diagnoz.pas'

begin

 

 

 

{Fdiagnoz},

27

aDiagnoz in 'aDiagnoz.pas'

ToolBar2: TToolBar;

dm.temp.Active:=false;

{FaDiagnoz},

e1: TEdit;

dm.temp.CommandText:='Select

pacient in 'pacient.pas'

Button4: TButton;

kto_vid from vidacha order by

{Fpacient},

Button7: TButton;

kto_vid';

aPacient in 'aPacient.pas'

ToolBar3: TToolBar;

dm.temp.Active:=true;

{FaPacient},

Button5: TButton;

While not dm.temp.Eof do

Vidacha in 'Vidacha.pas'

Button6: TButton;

begin

{FVidacha},

DBGrid1: TDBGrid;

fasprav.cb2.Items.Add(dm.temp

avidacha in 'avidacha.pas'

ToolButton1: TToolButton;

.fields[0].AsString);

{Favidacha},

Button8: TButton;

dm.temp.Next;

Sprav in 'Sprav.pas'

WordApplication1:

end;

{FSprav},

TWordApplication;

fasprav.ShowModal;

aSprav in 'aSprav.pas'

WordDocument1:

end;

{FaSprav},

TWordDocument;

procedure

ot1 in 'ot1.pas' {fot1},

Button9: TButton;

TFSprav.Button2Click(Sender:

ot2 in 'ot2.pas' {Fot2};

ToolButton2: TToolButton;

TObject);

{$R *.res}

procedure

begin

begin

Button1Click(Sender:

if

Application.Initialize;

TObject);

dm.sp.Fields[0].AsString=''

Application.Title :=

procedure

then

'Психоневрологический

Button2Click(Sender:

begin

диспансер';

TObject);

showmessage('Запись для

 

procedure

редактирования отсутствует');

Application.CreateForm(TFpass

Button3Click(Sender:

exit;

, Fpass);

TObject);

end;

Application.CreateForm(Tdm,

procedure

if

dm);

Button7Click(Sender:

dm.sp.Fields[5].AsBoolean=TRU

 

TObject);

E then

Application.CreateForm(Tfmain

procedure

begin

, fmain);

Button5Click(Sender:

showmessage('Данную запись

 

TObject);

изменить невозможно');

Application.CreateForm(TFChpa

procedure

exit;

ss, FChpass);

Button6Click(Sender:

end;

 

TObject);

tmp:=dm.sp.Fields[0].AsString

Application.CreateForm(TFdiag

procedure

;tm:=1;

noz, Fdiagnoz);

Button4Click(Sender:

//***************************

 

TObject);

***

Application.CreateForm(TFaDia

procedure

if

gnoz, FaDiagnoz);

FormCloseQuery(Sender:

fmain.Update('sp','sprav')=fa

 

TObject; var CanClose:

lse then

Application.CreateForm(TFpaci

Boolean);

begin

ent, Fpacient);

procedure

showmessage('Данная запись

 

Button8Click(Sender:

используется другим

Application.CreateForm(TFaPac

TObject);

пользователем');

ient, FaPacient);

procedure

exit;

 

FormShow(Sender: TObject);

end;

Application.CreateForm(TFVida

procedure

//***************************

cha, FVidacha);

Button9Click(Sender:

***

 

TObject);

dm.temp.Active:=false;

Application.CreateForm(TFavid

private

dm.temp.CommandText:='Select

acha, Favidacha);

{ Private declarations }

id_pc,fio_pc from pacient

 

public

where (datas_pc is not null)

Application.CreateForm(TFSpra

{ Public declarations }

order by fio_pc ';

v, FSprav);

end;

dm.temp.Active:=true;

 

var

While not dm.temp.Eof do

Application.CreateForm(TFaSpr

FSprav: TFSprav;

begin

av, FaSprav);

implementation

fasprav.cb1.Items.Add(dm.temp

 

uses datm, aSprav, main;

.fields[0].AsString+')

Application.CreateForm(Tfot1,

{$R *.dfm}

'+dm.temp.fields[1].AsString)

fot1);

procedure

;

 

TFSprav.Button1Click(Sender:

dm.temp.Next;

Application.CreateForm(TFot2,

TObject);

end;

Fot2);

begin

dm.temp.Active:=false;

Application.Run;

tm:=0;

dm.temp.CommandText:='Select

end.

fasprav.cb1.Clear;fasprav.cb2

kto_vid from vidacha order by

unit Sprav;

.Clear;

kto_vid';

interface

dm.temp.Active:=false;

dm.temp.Active:=true;

uses

dm.temp.CommandText:='Select

While not dm.temp.Eof do

Windows, Messages,

id_pc,fio_pc from pacient

begin

SysUtils, Variants, Classes,

where (datas_pc is not null)

fasprav.cb2.Items.Add(dm.temp

Graphics, Controls, Forms,

order by fio_pc ';

.fields[0].AsString);

Dialogs, Grids, DBGrids,

dm.temp.Active:=true;

dm.temp.Next;

StdCtrls, ToolWin, ComCtrls,

While not dm.temp.Eof do

end;

WordXP, OleServer,registry;

begin

dm.temp.Active:=false;

type

fasprav.cb1.Items.Add(dm.temp

dm.temp.CommandText:='Select

TFSprav = class(TForm)

.fields[0].AsString+')

id_pc,fio_pc from

ToolBar1: TToolBar;

'+dm.temp.fields[1].AsString)

pacient,sprav where

Button1: TButton;

;

(id_pc=id_pc_sp) and

Button2: TButton;

dm.temp.Next;

(id_sp='+tmp+')';

Button3: TButton;

end;

dm.temp.Active:=true;

28

fasprav.cb1.Text:=dm.temp.fie

end;

Table1: Table;

ldbyname('id_pc').AsString+')

procedure

i: integer;

'+dm.temp.fieldbyname('fio_pc

TFSprav.Button5Click(Sender:

flag:boolean;

').AsString;

TObject);

Reg: TRegistry;

fasprav.cb2.Text:=dm.sp.field

begin

begin

byname('kto_vid').AsString;

e1.Clear;

//Проверяем, инсталлирован

fasprav.dtp1.date:=dm.sp.fiel

dm.sp.Active:=false;

ли Word

dbyname('data_sp').asdatetime

dm.sp.CommandText:='(select

Reg := TRegistry.Create;

;

id_sp,fio_pc,kto_vid,cena_sp,

Reg.RootKey :=

FaSprav.cb1Change(Sender);FaS

data_sp from

HKEY_CLASSES_ROOT;

prav.cb2Change(Sender);

vidacha,pacient,sprav where

 

fasprav.ShowModal;

(id_pc=id_pc_sp) and

flag:=reg.KeyExists('Word.App

end;

(id_vid=id_vid_sp) order by

lication');

procedure

data_sp) UNION (select

reg.Free;

TFSprav.Button3Click(Sender:

id_np,fio_np,kto_vid,cena_np,

//flag:=true;

TObject);

data_np from vidacha,NePsix

if flag=false then

begin

where (id_vid=id_vid_np)

begin

if

order by data_np)';

 

dm.sp.Fields[0].AsString=''

dm.sp.Active:=true;

application.MessageBox('Word

then

end;

не

begin

procedure

устанволен','Отчет',mb_ok+mb_

showmessage('Запись для

TFSprav.Button6Click(Sender:

iconstop);

редактирования отсутствует');

TObject);

exit;

exit;

begin

end;

end;

e1.Clear;

if

tmp:=dm.sp.Fields[0].AsString

dm.sp.Active:=false;

dm.sp.Fields[5].AsBoolean=TRU

;tm:=1;

dm.sp.CommandText:='(select

E then

if

id_sp,fio_pc,kto_vid,cena_sp,

begin

dm.sp.Fields[5].AsBoolean=FAL

data_sp from

WordApplication1.Connect;

SE then

vidacha,pacient,sprav where

// Устанавливаем связь с

begin

(id_pc=id_pc_sp) and

сервером

if

(id_vid=id_vid_sp) order by

//Открываем шаблон

fmain.Delete('sp','sprav',tmp

cena_sp) UNION (select

otchet.dot в Word

)=false then

id_np,fio_np,kto_vid,cena_np,

Template:=ExtractFilePath(App

begin

data_np from vidacha,NePsix

lication.EXEName)+'\Шаблоны\С

showmessage('Данная

where (id_vid=id_vid_np)

правка.dot'; //путь к шаблону

запись используется другим

order by cena_np)';

документа

пользователем');

dm.sp.Active:=true;

WordApplication1.Documents.Ad

exit;

end;

d(Template,EmptyParam,EmptyPa

end

procedure

ram,EmptyParam);// создаем

else dm.sp.Requery();

TFSprav.Button4Click(Sender:

документ на основе шаблона

end

TObject);

WordDocument1.ConnectTo(WordA

else

begin

pplication1.ActiveDocument);

begin

dm.sp.Active:=false;

//Связываем компонент

if

dm.sp.CommandText:='(select

WordDocument1 c активным

fmain.Delete('np','nepsix',tm

id_sp,fio_pc,kto_vid,cena_sp,

документом (т.е. с только что

p)=false then

data_sp,lg_vid from

созданным документом)

begin

vidacha,pacient,sprav where

//Заполняем таблицу списка

showmessage('Данная

(id_pc=id_pc_sp) and

объектов

запись используется другим

(id_vid=id_vid_sp) and

Replace:=true; // параметр,

пользователем');

(fio_pc like

задающий режим замены

exit;

"%'+e1.Text+'%")) UNION

FindText:='#1'; // что

end

(select

меняем

else dm.sp.Requery();

id_np,fio_np,kto_vid,cena_np,

ReplaceWith:=dm.sp.fieldbynam

end;

data_np,lg_np from

e('data_sp').AsString; // на

 

vidacha,NePsix where

что меняем

nd;

(id_vid=id_vid_np) and

WordDocument1.Range.Find.Exec

 

(fio_np like

ute(FindText,EmptyParam,Empty

procedure

"%'+e1.Text+'%"))';

Param,

TFSprav.Button7Click(Sender:

dm.sp.Active:=true;

EmptyParam,EmptyParam,EmptyPa

TObject);

end;

ram,EmptyParam,

begin

procedure

EmptyParam,EmptyParam,Replace

e1.Clear;

TFSprav.FormCloseQuery(Sender

With,Replace,EmptyParam,Empty

dm.sp.Active:=false;

: TObject; var CanClose:

Param,EmptyParam,EmptyParam);

dm.sp.CommandText:='(select

Boolean);

Replace:=true; // параметр,

id_sp,fio_pc,kto_vid,cena_sp,

begin

задающий режим замены

data_sp,lg_vid from

e1.Clear;close;

FindText:='#2'; // что

vidacha,pacient,sprav where

end;

меняем

(id_pc=id_pc_sp) and

 

ReplaceWith:=dm.sp.fieldbynam

(id_vid=id_vid_sp) and

procedure

e('fio_pc').AsString; // на

(fio_pc like

TFSprav.Button8Click(Sender:

что меняем

"%'+e1.Text+'%")) UNION

TObject);

WordDocument1.Range.Find.Exec

(select

var

ute(FindText,EmptyParam,Empty

id_np,fio_np,kto_vid,cena_np,

 

Param,

data_np,lg_np from

Template,NewTemplate,FindText

EmptyParam,EmptyParam,EmptyPa

vidacha,NePsix where

, NewStr,

ram,EmptyParam,

(id_vid=id_vid_np) and

Replace,ReplaceWith:OleVarian

EmptyParam,EmptyParam,Replace

(fio_np like

t;

With,Replace,EmptyParam,Empty

"%'+e1.Text+'%"))';

LinkToFile,SaveWithDocument,R

Param,EmptyParam,EmptyParam);

dm.sp.Active:=true;

ange:OleVariant;

dm.temp.Active:=false;

29

 

EmptyParam,EmptyParam,Replace

, NewStr,

dm.temp.CommandText:='select

With,Replace,EmptyParam,Empty

Replace,ReplaceWith:OleVarian

adr_np,dr_np from nepsix

Param,EmptyParam,EmptyParam);

t;

WHERE

Replace:=true; // параметр,

LinkToFile,SaveWithDocument,R

(id_np='+dm.sp.Fields[0].AsSt

задающий режим замены

ange:OleVariant;

ring+')';

FindText:='#2'; // что

Table1: Table;

dm.temp.Active:=true;

меняем

i: integer;

Replace:=true; // параметр,

ReplaceWith:=dm.sp.fieldbynam

flag:boolean;

задающий режим замены

e('fio_pc').AsString; // на

Reg: TRegistry;

FindText:='#3'; // что

что меняем

begin

меняем

WordDocument1.Range.Find.Exec

fio:=inputbox('Выдача

ReplaceWith:=dm.temp.fieldbyn

ute(FindText,EmptyParam,Empty

справки','ФИО

ame('dr_np').AsString; // на

Param,

обратившегося','');

что меняем

EmptyParam,EmptyParam,EmptyPa

if fio='' then

WordDocument1.Range.Find.Exec

ram,EmptyParam,

begin

ute(FindText,EmptyParam,Empty

EmptyParam,EmptyParam,Replace

showmessage('Вы не ввели

Param,

With,Replace,EmptyParam,Empty

ФИО обратившегося');

EmptyParam,EmptyParam,EmptyPa

Param,EmptyParam,EmptyParam);

exit;

ram,EmptyParam,

dm.temp.Active:=false;

end;

EmptyParam,EmptyParam,Replace

 

data:=inputbox('Выдача

With,Replace,EmptyParam,Empty

dm.temp.CommandText:='select

справки','День рождения','');

Param,EmptyParam,EmptyParam);

adr_pc,dr_pc from

try

Replace:=true; // параметр,

pacient,sprav WHERE

 

задающий режим замены

(id_pc=id_pc_sp) and

data:=datetostr(strtodate(dat

FindText:='#4'; // что

(id_sp='+dm.sp.Fields[0].AsSt

a));

меняем

ring+')';

except

ReplaceWith:=dm.temp.fieldbyn

dm.temp.Active:=true;

showmessage('Ошибка в

ame('adr_np').AsString; // на

Replace:=true; // параметр,

формате даты! Формат:

что меняем

задающий режим замены

дд.мм.гггг');

WordDocument1.Range.Find.Exec

FindText:='#3'; // что

exit;

ute(FindText,EmptyParam,Empty

меняем

end;

Param,

ReplaceWith:=dm.temp.fieldbyn

dm.temp.Active:=false;

EmptyParam,EmptyParam,EmptyPa

ame('dr_pc').AsString; // на

dm.temp.CommandText:='select

ram,EmptyParam,

что меняем

id_pc from pacient where

EmptyParam,EmptyParam,Replace

WordDocument1.Range.Find.Exec

(fio_pc="'+fio+'") and

With,Replace,EmptyParam,Empty

ute(FindText,EmptyParam,Empty

(dr_pc=#'+fmain.data(strtodat

Param,EmptyParam,EmptyParam);

Param,

e(data))+'#)';

 

EmptyParam,EmptyParam,EmptyPa

dm.temp.Active:=true;

WordApplication1.Visible:=tru

ram,EmptyParam,

if dm.temp.RecordCount>0 then

e; //делаем приложение MS

EmptyParam,EmptyParam,Replace

showmessage('Данный пациент

Word видимым

With,Replace,EmptyParam,Empty

состоит/состоял на

 

Param,EmptyParam,EmptyParam);

учете!'+#13+'Воспользуйтесь

WordApplication1.Disconnect;

Replace:=true; // параметр,

другим сервисом выдачи

// Разрываем связь с серверо

задающий режим замены

справок')

end

FindText:='#4'; // что

else

else

меняем

begin

begin

ReplaceWith:=dm.temp.fieldbyn

adr:=inputbox('Выдача

WordApplication1.Connect;

ame('adr_pc').AsString; // на

справки','Адрес

// Устанавливаем связь с

что меняем

обратившегося','');

сервером

WordDocument1.Range.Find.Exec

if fio='' then

//Открываем шаблон

ute(FindText,EmptyParam,Empty

begin

otchet.dot в Word

Param,

showmessage('Вы не ввели

Template:=ExtractFilePath(App

EmptyParam,EmptyParam,EmptyPa

адрес обратившегося');

lication.EXEName)+'\Шаблоны\С

ram,EmptyParam,

exit;

правка.dot'; //путь к шаблону

EmptyParam,EmptyParam,Replace

end;

документа

With,Replace,EmptyParam,Empty

kto:=inputbox('Выдача

WordApplication1.Documents.Ad

Param,EmptyParam,EmptyParam);

справки','Кто

d(Template,EmptyParam,EmptyPa

 

запрашивает?','');

ram,EmptyParam);// создаем

WordApplication1.Visible:=tru

if fio='' then

документ на основе шаблона

e; //делаем приложение MS

begin

WordDocument1.ConnectTo(WordA

Word видимым

showmessage('Вы не ввели

pplication1.ActiveDocument);

 

адрес обратившегося');

//Связываем компонент

WordApplication1.Disconnect;

exit;

WordDocument1 c активным

// Разрываем связь с серверо

end;

документом (т.е. с только что

end;

dm.temp.Active:=false;

созданным документом)

end;

 

//Заполняем таблицу списка

procedure

dm.temp.CommandText:='select

объектов

TFSprav.FormShow(Sender:

st_vid,id_vid from vidacha

Replace:=true; // параметр,

TObject);

where (kto_vid="'+kto+'")';

задающий режим замены

begin

dm.temp.Active:=true;

FindText:='#1'; // что

dbgrid1.DataSource:=dm.sps;

if dm.temp.RecordCount<1

меняем

end;

then showmessage('Данной

ReplaceWith:=dm.sp.fieldbynam

procedure

структуры нет в БД')

e('data_sp').AsString; // на

TFSprav.Button9Click(Sender:

else

что меняем

TObject);

begin

WordDocument1.Range.Find.Exec

var

 

ute(FindText,EmptyParam,Empty

fio,adr,data,kto,cena,id:stri

cena:=dm.temp.Fields[0].AsStr

Param,

ng;

ing;

EmptyParam,EmptyParam,EmptyPa

 

 

ram,EmptyParam,

Template,NewTemplate,FindText

 

30

 

With,Replace,EmptyParam,Empty

procedure

id:=dm.temp.Fields[1].AsStrin

Param,EmptyParam,EmptyParam);

Button4Click(Sender:

g;

Replace:=true; // параметр,

TObject);

end;

задающий режим замены

procedure

dm.com.CommandText:='Insert

FindText:='#3'; // что

Button5Click(Sender:

into nepsix

меняем

TObject);

(fio_np,id_vid_np,data_np,cen

ReplaceWith:=data; // на

procedure

a_np,dr_np,adr_np) values

что меняем

Button6Click(Sender:

("'+fio+'",'+id+',"'+datetost

WordDocument1.Range.Find.Exec

TObject);

r(date)+'","'+cena+'","'+data

ute(FindText,EmptyParam,Empty

procedure

+'","'+adr+'")';

Param,

FormShow(Sender: TObject);

dm.com.Execute;

EmptyParam,EmptyParam,EmptyPa

private

//Проверяем, инсталлирован

ram,EmptyParam,

{ Private declarations }

ли Word

EmptyParam,EmptyParam,Replace

public

Reg := TRegistry.Create;

With,Replace,EmptyParam,Empty

{ Public declarations }

Reg.RootKey :=

Param,EmptyParam,EmptyParam);

end;

HKEY_CLASSES_ROOT;

Replace:=true; // параметр,

var

 

задающий режим замены

FVidacha: TFVidacha;

flag:=reg.KeyExists('Word.App

FindText:='#4'; // что

implementation

lication');

меняем

uses datm, avidacha, main;

reg.Free;

ReplaceWith:=adr; // на что

{$R *.dfm}

//flag:=true;

меняем

procedure

if flag=false then

WordDocument1.Range.Find.Exec

TFVidacha.Button1Click(Sender

begin

ute(FindText,EmptyParam,Empty

: TObject);

 

Param,

begin

application.MessageBox('Word

EmptyParam,EmptyParam,EmptyPa

tm:=0;

не

ram,EmptyParam,

favidacha.ShowModal;

устанволен','Отчет',mb_ok+mb_

EmptyParam,EmptyParam,Replace

end;

iconstop);

With,Replace,EmptyParam,Empty

procedure

exit;

Param,EmptyParam,EmptyParam);

TFVidacha.Button2Click(Sender

end;

 

: TObject);

WordApplication1.Connect;

WordApplication1.Visible:=tru

begin

// Устанавливаем связь с

e; //делаем приложение MS

if

сервером

Word видимым

dm.vid.Fields[0].AsString=''

//Открываем шаблон

 

then

otchet.dot в Word

WordApplication1.Disconnect;

begin

Template:=ExtractFilePath(App

// Разрываем связь с серверо

showmessage('Запись для

lication.EXEName)+'\Шаблоны\С

end;

редактирования отсутствует');

правка.dot'; //путь к шаблону

end;

exit;

документа

end.

end;

WordApplication1.Documents.Ad

unit Vidacha;

tmp:=dm.vid.Fields[0].AsStrin

d(Template,EmptyParam,EmptyPa

interface

g;tm:=1;

ram,EmptyParam);// создаем

uses

//***************************

документ на основе шаблона

Windows, Messages,

***

WordDocument1.ConnectTo(WordA

SysUtils, Variants, Classes,

if

pplication1.ActiveDocument);

Graphics, Controls, Forms,

fmain.Update('vid','vidacha')

//Связываем компонент

Dialogs, Grids, DBGrids,

=false then

WordDocument1 c активным

StdCtrls, ToolWin, ComCtrls;

begin

документом (т.е. с только что

 

showmessage('Данная запись

созданным документом)

type

используется другим

//Заполняем таблицу списка

TFVidacha = class(TForm)

пользователем');

объектов

ToolBar1: TToolBar;

exit;

Replace:=true; // параметр,

Button1: TButton;

end;

задающий режим замены

Button2: TButton;

//***************************

FindText:='#1'; // что

Button3: TButton;

***

меняем

ToolBar2: TToolBar;

favidacha.e1.Text:=dm.vid.fie

 

e1: TEdit;

ldbyname('kto_vid').AsString;

ReplaceWith:=datetostr(date);

Button4: TButton;

favidacha.e2.Text:=dm.vid.fie

// на что меняем

Button7: TButton;

ldbyname('st_vid').AsString;

WordDocument1.Range.Find.Exec

ToolBar3: TToolBar;

tmpc:=favidacha.e2.Text;

ute(FindText,EmptyParam,Empty

Button5: TButton;

favidacha.ShowModal;

Param,

Button6: TButton;

end;

EmptyParam,EmptyParam,EmptyPa

DBGrid1: TDBGrid;

procedure

ram,EmptyParam,

ToolButton1: TToolButton;

TFVidacha.Button3Click(Sender

EmptyParam,EmptyParam,Replace

procedure

: TObject);

With,Replace,EmptyParam,Empty

Button1Click(Sender:

begin

Param,EmptyParam,EmptyParam);

TObject);

if

Replace:=true; // параметр,

procedure

dm.vid.Fields[0].AsString=''

задающий режим замены

Button2Click(Sender:

then

FindText:='#2'; // что

TObject);

begin

меняем

procedure

showmessage('Запись для

ReplaceWith:=fio; // на что

Button3Click(Sender:

редактирования отсутствует');

меняем

TObject);

exit;

WordDocument1.Range.Find.Exec

procedure

end;

ute(FindText,EmptyParam,Empty

Button7Click(Sender:

tmp:=dm.vid.Fields[0].AsStrin

Param,

TObject);

g;tm:=1;

EmptyParam,EmptyParam,EmptyPa

procedure

if

ram,EmptyParam,

FormCloseQuery(Sender:

fmain.Delete('vid','vidacha',

EmptyParam,EmptyParam,Replace

TObject; var CanClose:

tmp)=false then

 

Boolean);

begin

31

Соседние файлы в папке Курсовые работы