Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Datenbanken (https://www.delphipraxis.net/22-library-datenbanken/)
-   -   Delphi Word Serienbrief mit DBase Datenbank (https://www.delphipraxis.net/15046-word-serienbrief-mit-dbase-datenbank.html)

CTV 21. Jan 2004 08:31


Word Serienbrief mit DBase Datenbank
 
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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz