/
CDS_DM.pas
80 lines (64 loc) · 2.77 KB
/
CDS_DM.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
unit CDS_DM;
interface
uses
SysUtils, Windows, Classes, ShellApi, Dialogs, DB, DBClient, OleServer, WordXP, OutlookXP, Variants;
type
TOtherDataAccessDM = class(TDataModule)
SearchTypeCDS: TClientDataSet;
SearchTypeDataSource: TDataSource;
AnnonceWordApplication: TWordApplication;
AnnonceSquareFrWordDocument: TWordDocument;
AnnonceSimpleWordDocument: TWordDocument;
procedure DataModuleCreate(Sender: TObject);
procedure ActivateWordServers;
private
{ Private declarations }
public
{ Public declarations }
end;
var
OtherDataAccessDM: TOtherDataAccessDM;
implementation
{$R *.dfm}
uses MainForm;
procedure TOtherDataAccessDM.ActivateWordServers;
var FN, EP, Replace, ShapeIndex: OleVariant;
SaveChanges: OleVariant;
DocItem: OleVariant;
begin
try
SaveChanges:=False;
DocItem:=1;
try
CopyFile(PChar(GetCurrentDir+'\DOC\reserve_docs\AnnonceTemplatePictSqareFrameWhiteBackGrnd.doc'),PChar(GetCurrentDir+'\DOC\AnnonceTemplatePictSqareFrameWhiteBackGrnd.doc'),False);
CopyFile(PChar(GetCurrentDir+'\DOC\reserve_docs\AnnonceTemplateSimple.doc'),PChar(GetCurrentDir+'\DOC\AnnonceTemplateSimple.doc'),False);
except
ShowMessage('Íåóäà÷íàÿ ñèíõðîíèçàöèÿ îòíîñèòåëüíî ðåçåðâíûõ ôàéëîâ doc-øàáëîíîâ!');
end;
if OtherDataAccessDM.AnnonceWordApplication.Documents.Count>0 then
begin
ShowMessage('Ïðèëîæåíèå Word ñîäåðæèò îòêðûòûå äîêóìåíòû, çàêðîéòå èõ ñàìè äî íàæàòèÿ êíîïêè, èíà÷å ñèñòåìà çàêðîåò èõ áåç ñîõðàíåíèÿ èçìåíåíèé!');
if OtherDataAccessDM.AnnonceWordApplication.Documents.Count>0 then
ShowMessage('Íåñîõðàí¸ííûå äàííûå áóäóò ïîòåðÿíû!');
while OtherDataAccessDM.AnnonceWordApplication.Documents.Count>0 do
OtherDataAccessDM.AnnonceWordApplication.Documents.Item(DocItem).Close(SaveChanges, EmptyParam, EmptyParam);
ShowMessage('Ïåðåçàïóñòèòå ïðèëîæåíèå!');
FirstForm.Close;
Exit;
end;
FN:=CDP+'\DOC\AnnonceTemplateSimple.doc';
AnnonceWordApplication.Documents.Open(FN,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
AnnonceSimpleWordDocument.ConnectTo(AnnonceWordApplication.ActiveDocument);
FN:=CDP+'\DOC\AnnonceTemplatePictSqareFrameWhiteBackGrnd.doc';
AnnonceWordApplication.Documents.Open(FN,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
AnnonceSquareFrWordDocument.ConnectTo(AnnonceWordApplication.ActiveDocument);
except
ShowMessage('Çàêðîéòå âñå ïðèëîæåíèÿ è ïðîöåññû MS Word, èíà÷å ïðèëîæåíèå áóäåò íåðàáîòîñïîñîáíî!');
FirstForm.Close;
end;
end;
procedure TOtherDataAccessDM.DataModuleCreate(Sender: TObject);
begin
ActivateWordServers;
end;
end.