Mit dieser Procedure kann man ganz einfach einen WordSerienbrif erstellen!
Parameter:
Titel:TRichEdit
enthält den Titel das Serienbriefes
DBQuelle:String
enthält den Pfad zur dbf datenbank
DBFelder: TStringlist
enhält alle Feldnamen der Datenbank welche für den Serienbrief benötigt werden
VertAbstand: Integer
Bestimmt die vertikale Corsurausrichtung (in Enterschlägen)
HorAbstand: Integer
Besstimmt die horizontale Corsurausrichtung (in Leerschlägen)
Delphi-Quellcode:
Procedure MachEnSerienBrief(Titel:TRichEdit; DBQuelle: String; DBFelder:TStringlist; VertAbstand: Integer; HorAbstand: Integer);
var
Word: OLEVariant;
i:integer;
SHorAbstand:String;
begin
try
Word:=GetActiveOleObject('Word.Application');
except
try
Word:=CreateOleObject('Word.Application');
except
ShowMessage('Microsoft Word kann nicht starten.');
screen.cursor:=crDefault;
exit;
end;
end;
Word.ActiveDocument.MailMerge.MainDocumentType:= wdFormLetters;
titel.SelectAll;
titel.CopyToClipboard;
Word.Selection.paste;
word.ActiveDocument.MailMerge.OpenDataSource(DBQuelle,'SELECT * FROM [" '+ DBQuelle +' "]"');
Word.ActiveDocument.MailMerge.EditMainDocument;
for i:=0 to VertAbstand do
begin
Word.Selection.TypeParagraph;
end;
SHorAbstand:='';
for i:=0 to HorAbstand do
begin
SHorAbstand:=SHorAbstand+' ';
end;
for i:=0 to DBFelder.Count-1 do
begin
Word.Selection.TypeText(SHorAbstand);
Word.ActiveDocument.MailMerge.Fields.Add(Word.Selection.Range,DBFelder.Strings[i]);
Word.Selection.TypeParagraph;
end;
Word := Unassigned;
end;
Viel Spass damit Greez Cyrus
Copyright by Cyrus!!
[edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit]