Einzelnen Beitrag anzeigen

Benutzerbild von CTV
CTV

Registriert seit: 20. Jan 2004
Ort: Zug CH
83 Beiträge
 
Delphi 7 Professional
 
#1

Word Serienbrief mit DBase Datenbank

  Alt 21. Jan 2004, 08:31
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]
  Mit Zitat antworten Zitat