Курсовые работы / ПРИС П _30
.pdfЛистинг Б.11 – Oborud
unit Oborud; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,accessdb; type
TFOborud = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn6: TBitBtn; Panel2: TPanel;
e: TEdit; BitBtn4: TBitBtn; BitBtn5: TBitBtn; BitBtn1: TBitBtn;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure BitBtn3Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
FOborud: TFOborud; implementation
uses datm, aoborud; {$R *.dfm}
procedure TFOborud.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin e.Clear; end;
procedure TFOborud.BitBtn3Click(Sender: TObject); begin
if dm.ob.RecordCount=0 then showmessage('Записи отсутствуют')
else begin tm:=1;
id_ob:=dm.ob.Fields[0].AsString;
if accessdb.Delete('ob','oborud',id_ob)=false then showmessage('Запись используется другим пользователем')
else dm.ob.Requery(); end;
end;
procedure TFOborud.BitBtn2Click(Sender: TObject); begin
if dm.ob.RecordCount=0 then showmessage('Записи отсутствуют')
else begin tm:=1;
id_pod:=dm.ob.Fieldbyname('id_pod').asstring; id_ob:=dm.ob.Fields[0].AsString;
if accessdb.Update('ob','oborud',id_ob)=false then showmessage('Запись используется другим пользователем')
else begin
faoborud.cb1.Text:=dm.ob.fieldbyname('podr').AsString; faoborud.e1.Text:=dm.ob.fieldbyname('nazv_ob').AsString; faoborud.e2.Text:=dm.ob.fieldbyname('zn_ob').AsString; faoborud.e3.Text:=dm.ob.fieldbyname('st_ob').AsString; faoborud.e4.Text:=dm.ob.fieldbyname('rabota_ob').AsString;
faoborud.dtp1.date:=dm.ob.fieldbyname('datav_ob').AsDateTime; faoborud.dtp2.date:=dm.ob.fieldbyname('datap_ob').AsDateTime;
faoborud.Caption:=caption+' :: '+bitbtn2.caption; faoborud.ShowModal;
42
end;
end;
end;
procedure TFOborud.BitBtn4Click(Sender: TObject); begin
dm.ob.Active:=false;
dm.ob.CommandText:='select id_ob,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_ob,st_ob,datav_ob,datap_ob,zn_ob,id_np,id_lu,id_pod, kod_np,kod_lu,kod_pod,rabota_ob from nasp,luchr,podrazd,oborud '+
'WHERE (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod = id_pod_ob) and (nazv_ob like "%'+e.Text+'%")'; dm.ob.Active:=true;
end;
procedure TFOborud.BitBtn5Click(Sender: TObject); begin
dm.ob.Active:=false;
dm.ob.CommandText:='select id_ob,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_ob,st_ob,datav_ob,datap_ob,zn_ob,id_np,id_lu,id_pod, kod_np,kod_lu,kod_pod,rabota_ob from nasp,luchr,podrazd,oborud '+
'WHERE (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod = id_pod_ob) and (nazv_ob like "%'+e.Text+'%") order by st_ob'; dm.ob.Active:=true;
end;
procedure TFOborud.BitBtn1Click(Sender: TObject); begin
dm.ob.Active:=false;
dm.ob.CommandText:='select id_ob,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_ob,st_ob,datav_ob,datap_ob,zn_ob,id_np,id_lu,id_pod, kod_np,kod_lu,kod_pod,rabota_ob from nasp,luchr,podrazd,oborud '+
'WHERE (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod = id_pod_ob) and (nazv_ob like "%'+e.Text+'%") order by datav_ob';
dm.ob.Active:=true;
end;
procedure TFOborud.BitBtn6Click(Sender: TObject); var
rem,st:string; begin
if dm.ob.RecordCount=0 then showmessage('Записи отсутствуют')
else begin
id_ob:=dm.ob.Fields[0].AsString; id_pod:=dm.ob.Fieldbyname('id_pod').asstring; rem:=inputbox('Вид работ','Введите вид ремонтных работ',''); st:=inputbox('Стоимость','Введите стоимость работ','0');
if (length(rem)<1) OR (length(rem)>254) then showmessage('Ошибка при вводе вида ремонтных работ')
else begin
try
if (strtofloat(st)<0) then begin
showmessage('Стоимость работ не может быть отрицательной');
exit;
end; except
showmessage('Ошибка при вводе стоимости работ'); exit;
end;
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_zk from remont,zakaz WHERE (id_ob_rm='+id_ob+') and (data_zk = date()) and (id_zk=id_zk_rm) and (id_pod_zk='+id_pod+')';
dm.temp.Active:=true;
if dm.temp.RecordCount>0 then showmessage('В этот день ремонт данного оборудования производился')
else begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_zk from |
remont,zakaz |
begin |
||
WHERE |
(data_zk = date()) and |
(id_zk=id_zk_rm) and |
|
|
(id_pod_zk='+id_pod+')'; |
|
|
|
|
dm.temp.Active:=true; |
|
|
|
|
if |
dm.temp.RecordCount>0 |
then |
|
|
id_zk:=dm.temp.Fields[0].AsString |
|
|
|
|
else |
|
|
|
|
begin |
|
|
|
|
dm.com.CommandText:='Insert |
into |
zakaz |
|
|
(id_pod_zk,data_zk) values ('+id_pod+',date())'; |
|
|
||
dm.com.Execute; |
|
|
|
|
dm.temp.Active:=false; |
|
|
|
|
dm.temp.CommandText:='select max(id_zk) from zakaz'; |
|
|||
dm.temp.Active:=true; |
|
|
|
|
id_zk:=dm.temp.Fields[0].AsString; |
|
|
|
|
end; |
|
|
|
|
dm.com.CommandText:='insert |
into |
remont |
|
|
(id_ob_rm,st_rm,rem_rm,id_zk_rm) |
|
values |
|
|
('+id_ob+',"'+st+'","'+rem+'",'+id_zk+')'; |
|
|
|
|
dm.com.Execute; |
|
|
|
showmessage('Оборудование Отправлено на ремонт'); end;
end;
end;
end;
end.
Листинг Б.12 – ot
unit ot; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WordXP, OleServer, StdCtrls, Buttons,Registry; type
TFot = class(TForm) Label1: TLabel; cb1: TComboBox; Label2: TLabel; cb2: TComboBox; BitBtn1: TBitBtn; Button1: TButton;
WordApplication1: TWordApplication; WordDocument1: TWordDocument;
procedure cb1KeyPress(Sender: TObject; var Key: Char);
procedure cb2KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject); procedure BitBtn1Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
Fot: TFot;
implementation
uses datm;
{$R *.dfm}
procedure TFot.cb1KeyPress(Sender: TObject; var Key: Char);
key:=#0;
end;
procedure TFot.cb2KeyPress(Sender: TObject; var Key: Char);
begin key:=#0; end;
procedure TFot.Button1Click(Sender: TObject); begin
closequery;
end;
procedure TFot.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin cb1.Clear;cb2.Clear; close;
end;
procedure TFot.FormShow(Sender: TObject); begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select nazv_np From nasp ORDER BY nazv_np';
dm.temp.Active:=true; While not dm.temp.Eof do
begin cb1.Items.Add(dm.temp.Fields[0].AsString); dm.temp.Next;
end;
dm.temp.Active:=false;
dm.temp.CommandText:='Select distinct nazv_pod From podrazd ORDER BY nazv_pod';
dm.temp.Active:=true; While not dm.temp.Eof do
begin cb2.Items.Add(dm.temp.Fields[0].AsString); dm.temp.Next;
end;
end;
43
procedure TFot.BitBtn1Click(Sender: TObject); var peremen:string;
Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;
LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;
i: integer;
Reg: TRegistry; flag:boolean;
summa,data,nom,tel,otdel:string; begin
WordApplication1.Connect; // Устанавливаем связь с сервером
//Открываем шаблон otchet.dot в Word
Template:=ExtractFilePath(Application.EXEName)+'data\
Шаблоны\ЛУчр.dot'; //путь к шаблону документа
WordApplication1.Documents.Add(Template,EmptyParam ,EmptyParam,EmptyParam);// создаем документ на основе шаблона
WordDocument1.ConnectTo(WordApplication1.ActiveDo cument); //Связываем компонент WordDocument1 c
активным документом (т.е. с только что созданным документом)
dm.TEMP.Active:=false;
dm.TEMP.CommandText:='Select nazv_np,nazv_lu,fio_lu,tel_lu from nasp,luchr where (id_np=id_np_lu) and (nazv_np like "%'+cb1.Text+'%")';// and (nazv_pod like "%'+cb2.Text+'%")';
dm.TEMP.Active:=true;
//Заполняем таблицу списка объектов
Table1:=WordDocument1.Tables.Item(1); //связываем имя Table1 с первой таблицей документа
//WordDocument1.Tables - это массив таблиц документа (тип Tables), а
WordDocument1.Tables.Item(i) - i-ая таблица i:=2;
dm.temp.First;
While not dm.temp.Eof do begin
Table1.Rows.Add(EmptyParam);
Table1.Cell(i, 1).Range.Text := dm.temp.Fields[0].AsString;
Table1.Cell(i, 2).Range.Text := dm.temp.Fields[1].AsString;
Table1.Cell(i, 3).Range.Text := dm.temp.Fields[2].AsString;
Table1.Cell(i, 4).Range.Text := dm.temp.Fields[3].AsString;
inc(i);dm.temp.next;
end; Table1.Rows.Item(i).Delete;
WordApplication1.Visible:=true; //делаем приложение
MS Word видимым
WordApplication1.Disconnect; // Разрываем связь с сервером
end;
end.
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs,inifiles, StdCtrls;
type
TFpass = class(TForm)
Листинг Б.13 – pass |
|
|
unit pass; |
Label1: TLabel; |
|
interface |
||
Label2: TLabel; |
||
uses |
||
cb: TComboBox; |
||
|
||
|
e: TEdit; |
|
|
44 |
Button1: TButton;
Button2: TButton;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject);
procedure cbKeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject); private
{Private declarations } public
{Public declarations } end;
var
Fpass: TFpass;
implementation
uses datm, main, luchr, NasP, Oborud, Podrazd, Zakaz;
{$R *.dfm}
procedure TFpass.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if application.MessageBox('Вы уверены?','Выход из программы!',mb_yesno+mb_iconquestion)=idyes then
begin dm.ado.Connected:=false; application.Terminate; end
else canclose:=false; end;
procedure TFpass.FormShow(Sender: TObject); var inifile:tinifile;
dbp:string; begin
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Data\opti ons.ini');
DBP := IniFile.ReadString('options', 'DBPath', ''); application.Title:=IniFile.ReadString('options', 'Title', ''); fmain.Caption:=IniFile.ReadString('options', 'mform', ''); avtor:=IniFile.ReadString('options', 'avtor', ''); gruppa:=IniFile.ReadString('options', 'gruppa', ''); IniFile.Free;
fpass.Caption:=application.Title;
dm.od.InitialDir:=ExtractFilePath(Application.ExeName)+'Data\'; try
dm.ADO.Connected:=false;
dm.ADO.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+dbp+';Persist Security Info=False';
dm.ADO.Connected:=true; except
if application.MessageBox('Произошла ошибка при подключении к базе данных!'#13'Хотите указать месторасположение базы данных?','База данных',mb_yesno+mb_iconquestion)=idyes then
begin
if dm.od.Execute then begin
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Data\opti ons.ini');
inifile.WriteString('options','DBPath',dm.od.FileName);
IniFile.Free;
dbp:=dm.od.FileName;
dm.ADO.Connected:=false;
dm.ADO.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+dbp+';Persist Security Info=False';
dm.ADO.Connected:=true; end
else
45
begin dm.ado.Connected:=false;
showmessage('Вы вышли из программы'); application.Terminate;
end; end
else begin
dm.ado.Connected:=false; showmessage('Вы вышли из программы'); application.Terminate;
end;
end;
cb.Clear;
dm.temp.Active:=false;
dm.temp.CommandText:='Select login from pass order by login'; dm.temp.Active:=true;
while not dm.temp.Eof do begin
cb.Items.Add(dm.temp.Fields[0].AsString);
dm.temp.Next;
end;
end;
procedure TFpass.cbKeyPress(Sender: TObject; var Key: Char); begin
key:=#0;
end;
procedure TFpass.Button2Click(Sender: TObject); begin
closequery;
end;
procedure TFpass.Button1Click(Sender: TObject); begin
if (cb.Text='') OR (e.Text='') then showmessage('Вы не выбрали имя пользователя и/или не ввели пароль')
else begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select login from pass where (login="'+cb.Text+'") and (pass="'+e.Text+'")';
dm.temp.Active:=true;
if dm.temp.RecordCount=0 then showmessage('Данный пароль не соответствует выбранному имени пользователя')
else begin
if (dm.temp.Fields[0].AsString='Администратор') then begin
end
else if (dm.temp.Fields[0].AsString='Заполнитель')then begin
fmain.N3.Enabled:=false;
fmain.N4.Enabled:=false;
fzakaz.BitBtn6.Enabled:=false;
fmain.N16.Enabled:=false; end
else if (dm.temp.Fields[0].AsString='Технический отдел')then begin
fmain.N3.Enabled:=false;
fmain.N4.Enabled:=false;
fluchr.BitBtn1.Enabled:=false;
fluchr.BitBtn2.Enabled:=false;
fluchr.BitBtn3.Enabled:=false;
fluchr.BitBtn6.Enabled:=false;
fnasp.BitBtn1.Enabled:=false;
fnasp.BitBtn2.Enabled:=false;
fnasp.BitBtn3.Enabled:=false;
foborud.BitBtn2.Enabled:=false;
foborud.BitBtn3.Enabled:=false;
foborud.BitBtn6.Enabled:=false;
fpodrazd.BitBtn2.Enabled:=false;
fpodrazd.BitBtn3.Enabled:=false;
fpodrazd.BitBtn6.Enabled:=false;
end; fmain.sb1.Panels[0].Text:='Пользователь:
'+dm.temp.Fields[0].AsString;
fpass.Hide;
fmain.ShowModal;
end;
end;
end;
end.
Листинг Б.14 – Podrazd
unit Podrazd; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,accessdb;
type
TFPodrazd = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn6: TBitBtn; Panel2: TPanel; e: TEdit; BitBtn4: TBitBtn; BitBtn5: TBitBtn;
procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
FPodrazd: TFPodrazd;
implementation
uses datm, aPodrazd, aoborud;
{$R *.dfm}
procedure TFPodrazd.BitBtn2Click(Sender: TObject); begin
if dm.pod.RecordCount=0 then showmessage('Записи отсутствуют')
else begin tm:=1;
id_lu:=dm.pod.Fieldbyname('id_lu').asstring; id_pod:=dm.pod.Fields[0].AsString;
if accessdb.Update('pod','podrazd',id_pod)=false then showmessage('Запись используется другим пользователем')
else begin
fapodrazd.cb1.Text:=dm.pod.fieldbyname('lu').AsString;
fapodrazd.e1.Text:=dm.pod.fieldbyname('nazv_pod').AsStr ing; fapodrazd.e2.Text:=dm.pod.fieldbyname('fio_pod').AsStrin g; fapodrazd.e3.Text:=dm.pod.fieldbyname('tel_pod').AsStrin g;
fapodrazd.e4.Text:=dm.pod.fieldbyname('kod_pod').AsStri ng;
fapodrazd.Caption:=caption+' :: '+bitbtn2.caption; fapodrazd.ShowModal;
end;
end;
end;
procedure TFPodrazd.BitBtn3Click(Sender: TObject); begin
if dm.pod.RecordCount=0 then showmessage('Записи отсутствуют')
else begin tm:=1;
id_pod:=dm.pod.Fields[0].AsString;
if accessdb.Delete('pod','podrazd',id_pod)=false then showmessage('Запись используется другим пользователем')
else dm.pod.Requery(); end;
end;
procedure TFPodrazd.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin e.Clear; end;
procedure TFPodrazd.BitBtn4Click(Sender: TObject); begin
dm.pod.Active:=false;
dm.pod.CommandText:='Select id_pod,nazv_pod,fio_pod,tel_pod,([nazv_lu]&" ("&[nazv_np]&")") as lu,id_lu,kod_pod,kod_lu from podrazd,luchr,nasp where (id_lu=id_lu_pod) and (id_np=id_np_lu) and (nazv_pod like "%'+e.Text+'%")'; dm.pod.Active:=true;
end;
procedure TFPodrazd.BitBtn5Click(Sender: TObject); begin
dm.pod.Active:=false;
dm.pod.CommandText:='Select id_pod,nazv_pod,fio_pod,tel_pod,([nazv_lu]&" ("&[nazv_np]&")") as lu,id_lu,kod_pod,kod_lu from podrazd,luchr,nasp where (id_lu=id_lu_pod) and (id_np=id_np_lu) and (nazv_pod like "%'+e.Text+'%") order by nazv_np,nazv_lu';
46
dm.pod.Active:=true;
end;
procedure TFPodrazd.BitBtn6Click(Sender: TObject); begin
if dm.pod.RecordCount=0 then showmessage('Записи отсутствуют')
else begin tm:=0;
id_pod:=dm.pod.Fields[0].AsString; faoborud.Caption:=caption+' :: '+BitBtn6.Caption; faoborud.cb1.text:=dm.pod.fieldbyname('lu').AsString+' -
'+dm.pod.fieldbyname('nazv_pod').AsString; faoborud.dtp1.Date:=date; faoborud.dtp2.Date:=date; faoborud.ShowModal;
end;
end;
end.
Листинг Б.15 – UEasyPath
unit UEasyPath;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
function PathWithoutExt(Path:string):string; function NameFile(Path:string;Ext:boolean):string; function PathToFile(Path:string):string;
function Ext(Path:string):string;
implementation
function PathWithoutExt(Path:string):string; var s:string;
i:integer; begin i:=1;
while s<>'.' do begin
s:=copy(path,length(path)-i+1,1); inc(i);
end; result:=copy(path,0,length(path)-i+1); end;
function NameFile(Path:string;Ext:boolean):string; var s,s1:string;
i:integer; begin i:=1;
while s<>'\' do begin
s:=copy(path,length(path)-i+1,1); inc(i);
end; s1:=copy(path,length(path)-i+3,i); if Ext=true then result:=s1
else begin i:=1;
while s<>'.' do begin
s:=copy(s1,length(s1)-i+1,1); inc(i);
end; result:=copy(s1,0,length(s1)-i+1);
end;
end;
function PathToFile(Path:string):string; var s:string;
i:integer; begin i:=1;
while s<>'\' do begin
s:=copy(path,length(path)-i+1,1); inc(i);
end; result:=copy(path,0,length(path)-i+2); end;
function Ext(Path:string):string; var s:string;
i:integer; begin i:=1;
while s<>'.' do begin
s:=copy(path,length(path)-i+1,1); inc(i);
end; result:=copy(path,length(path)-i+3,i); end;
end.
47
Листинг Б.16 – Zakaz
unit Zakaz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, WordXP, OleServer,registry;
type
TFZakaz = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel; BitBtn6: TBitBtn;
WordApplication1: TWordApplication; WordDocument1: TWordDocument; procedure BitBtn6Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
FZakaz: TFZakaz;
implementation
uses datm;
{$R *.dfm}
procedure TFZakaz.BitBtn6Click(Sender: TObject); var peremen:string;
Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;
LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;
i: integer;
Reg: TRegistry; flag:boolean;
summa,data,nom,tel,otdel:string; begin
if dm.zk.RecordCount=0 then showmessage('Записи отсутствуют')
else begin
id_zk:=dm.zk.Fieldbyname('id_zk').asstring;
WordApplication1.Connect; // Устанавливаем связь с сервером //Открываем шаблон otchet.dot в Word
Template:=ExtractFilePath(Application.EXEName)+'data\Шаблон ы\Акт.dot'; //путь к шаблону документа
WordApplication1.Documents.Add(Template,EmptyParam,Empty Param,EmptyParam);// создаем документ на основе шаблона
WordDocument1.ConnectTo(WordApplication1.ActiveDocument) ; //Связываем компонент WordDocument1 c активным документом (т.е. с только что созданным документом)
dm.TEMP.Active:=false;
dm.TEMP.CommandText:='Select id_zk,data_zk,count(id_ob) as kol, sum(st_ob) as summa,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_pod,tel_pod from oborud,zakaz,nasp,luchr,podrazd '+
'WHERE (id_zk=id_zk_ob) and (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod=id_pod_zk) and (id_zk='+id_zk+') GROUP BY id_zk,data_zk,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]),nazv_pod,tel_pod ';
dm.TEMP.Active:=true; //nom:=dm.temp.fieldbyname('id_zk').AsString;
48
data:=dm.temp.fieldbyname('data_zk').AsString; summa:=dm.temp.fieldbyname('summa').AsString; tel:=dm.temp.fieldbyname('tel_pod').AsString; otdel:=dm.temp.fieldbyname('podr').AsString;
dm.TEMP.Active:=false;
dm.TEMP.CommandText:='Select nazv_ob,rabota_ob,st_ob from oborud WHERE (id_zk_ob='+id_zk+')';
dm.TEMP.Active:=true;
Replace:=true; // параметр, задающий режим замены
FindText:='#1'; // что меняем ReplaceWith:=otdel; // на что меняем
WordDocument1.Range.Find.Execute(FindText,EmptyParam,Emp tyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,ReplaceWith,Replace,EmptyParam,Em
ptyParam,EmptyParam,EmptyParam);
Replace:=true; // параметр, задающий режим замены
FindText:='#2'; // что меняем ReplaceWith:=tel; // на что меняем
WordDocument1.Range.Find.Execute(FindText,EmptyParam,Emp tyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,ReplaceWith,Replace,EmptyParam,Em
ptyParam,EmptyParam,EmptyParam);
Replace:=true; // параметр, задающий режим замены
FindText:='#3'; // что меняем ReplaceWith:=nom; // на что меняем
WordDocument1.Range.Find.Execute(FindText,EmptyParam,Emp tyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,ReplaceWith,Replace,EmptyParam,Em
ptyParam,EmptyParam,EmptyParam);
Replace:=true; // параметр, задающий режим замены
FindText:='#4'; // что меняем ReplaceWith:=data; // на что меняем
WordDocument1.Range.Find.Execute(FindText,EmptyParam,Emp tyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,ReplaceWith,Replace,EmptyParam,Em
ptyParam,EmptyParam,EmptyParam);
{ Replace:=true; // параметр, задающий режим замены
FindText:='#5'; // что меняем ReplaceWith:=summa; // на что меняем
WordDocument1.Range.Find.Execute(FindText,EmptyParam,Emp tyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,ReplaceWith,Replace,EmptyParam,Em ptyParam,EmptyParam,EmptyParam); }
//Заполняем таблицу списка объектов
Table1:=WordDocument1.Tables.Item(1); //связываем имя
Table1 с первой таблицей документа
//WordDocument1.Tables - это массив таблиц документа (тип
Tables), а WordDocument1.Tables.Item(i) - i-ая таблица i:=2;
dm.temp.First;
While not dm.temp.Eof do begin
Table1.Rows.Add(EmptyParam);
Table1.Cell(i, 1).Range.Text := dm.temp.Fields[0].AsString; Table1.Cell(i, 2).Range.Text := dm.temp.Fields[1].AsString; Table1.Cell(i, 3).Range.Text := dm.temp.Fields[2].AsString; inc(i);dm.temp.next;
end; Table1.Rows.Item(i).Delete;
WordApplication1.Visible:=true; //делаем приложение MS Word видимым
WordApplication1.Disconnect; // Разрываем связь с сервером end;
end;
end.