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
|
class procedure TFusion.setTemplateFields(ATemplateFile: string; var ATemplateFields : TStringList);
var
Word: TWordApplication;
Doc: WordDocument;
FileName: OleVariant;
I,A,B: Integer;
S: string;
begin
// DMMain.AddLogFile(DMMain.logFile, ' setTemplateFields - Début '+ATemplateFile);
Word:=TWordApplication.Create(nil);
Word.ConnectKind:=ckNewInstance;
Word.AutoQuit:=False;
Word.Connect;
Word.Visible:=True;
// DMMain.AddLogFile(DMMain.logFile, ' - Connexion WORD => OK '+ATemplateFile);
FileName:=ATemplateFile;
Doc:=Word.Documents.Open(FileName,EmptyParam,TrueOleVar,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
FalseOleVar,EmptyParam,EmptyParam,EmptyParam);
// DMMain.AddLogFile(DMMain.logFile, ' - Ouverture modèle => OK '+ATemplateFile);
for I:=1 to Doc.MailMerge.Fields.Count do
begin
S:=Trim(Doc.MailMerge.Fields.Item(I).Code.Text);
A:=Pos(' ',S);
while S[A]=' ' do
A:=A+1;
B:=PosEx(' ',S,A);
if B=0 then
B:=Length(S)+1;
ATemplateFields.Add(StringReplace(Copy(S,A,B-A),'"','',[rfReplaceAll]));
end;
// DMMain.AddLogFile(DMMain.logFile, ' - Remplissage du template liste des champs de fusion => OK '+ATemplateFile);
Word.NormalTemplate.Saved:=False;
// DMMain.AddLogFile(DMMain.logFile, ' - Word.NormalTemplate.Saved => OK '+ATemplateFile);
Word.Quit;
// DMMain.AddLogFile(DMMain.logFile, ' - Word.Quit; => OK '+ATemplateFile);
Word.Free;
// DMMain.AddLogFile(DMMain.logFile, ' - Word.Free; => OK '+ATemplateFile);
// DMMain.AddLogFile(DMMain.logFile, ' - setTemplateFields Fin => OK '+ATemplateFile);
end; |
Partager