AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit Serienbrief
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Serienbrief

Ein Thema von chrissy · begonnen am 7. Jan 2005 · letzter Beitrag vom 11. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#1

Problem mit Serienbrief

  Alt 7. Jan 2005, 10:25
Hallo!

habe versucht mir eine prozedur um einen Wordserienbrief zu erstellen zu schreiben, scheiter dabei nur leider kläglich.

meine Prozedur:
Delphi-Quellcode:
procedure Serienbrief(title : TRichEdit; DBQuelle : String; DBFelder : TStringList; VertAbstand, 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;
   title.SelectAll;
   title.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.AailMerge.Fields.Add(Word.Selection.Range, DBFelder.Strings[i]);
       word.Selection.TypeParagraph;
     end;
   word:=unassigned;
end;

Die Fehlermeldung, die ich bekomme, ist, dass "wdFormLetters" unbekannt ist. Habe aber nicht die geringste Idee, woran das liegt...

Funktioniert das so, oder gibt es sinvollere/bessere prozeduren um Daten aus einer Datenbank in einen Serienbrief zu übertragen.

Danke schon mal für baldige antwort.
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Problem mit Serienbrief

  Alt 7. Jan 2005, 10:28
vielleicht hülft das??
Gruß
PS: willkommen in der DP!
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#3

Re: Problem mit Serienbrief

  Alt 7. Jan 2005, 10:31
Hallo,

Ich habe das immer so gelöst, das ich die Daten in eine Txt geschrieben habe und dies als Quelle für den Serienbrief genutzt aheb, da besteht aber das Problem, dass die Umlaute falsch konvertiert werden.

Dann habe ich hier eine super Komponete gefunden. Du brauchst nichts mehr großartig an Code schreiben und der große Vorteil, es muß auch nicht Word Installiert sein.
  Mit Zitat antworten Zitat
chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#4

Re: Problem mit Serienbrief

  Alt 7. Jan 2005, 11:53
Danke für eure schnelle Hilfe, die Links haben mir gut geholfen. Werde es wohl erst mal weiter so lösen wie angefangen, da ich das meiste schon habe, fürs nächste mal probier ich mich dann mal an EKRTF.
  Mit Zitat antworten Zitat
chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#5

Re: Problem mit Serienbrief

  Alt 10. Jan 2005, 18:43
Hallo noch mal!

So weit so gut...
Hab jetzt nur noch ein kleines Problem mit der Methode, die ich gefunden habe (s.o.)

Wie übergebe ich die Felder, also, dBFields braucht ja die Feldnamen der felder, die aus der Datenbank an Word übergeben werden müssen.
Mein Problem, ich habe die einzelnen Tabellen der Datenbank mit DataSorce und Table in mein Delphi Programm eingebunden, und weiss nicht, mit welcher Methode oder Eigenschaft dieser Komponenten man die Feldnamen bekommen kann. Der Feldinhalt ist ja kein Problem...

Gruß
Chrissy
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Problem mit Serienbrief

  Alt 10. Jan 2005, 20:38
Zitat von chrissy:
Wie übergebe ich die Felder, also, dBFields braucht ja die Feldnamen der felder, die aus der Datenbank an Word übergeben werden müssen...
Die Feldnamen interessieren nicht. Du schreibst in die erste Zeile der Datenquelle z.B. folgendes:

ANREDE;NAME;STRASSE;ORT usw.

Und danach zeilenweise die Daten, z.B.:

Herr;Delphi;Version 7;München

Mehr ist es nicht. Dann dementsprechend noch das Hauptdokument aufbauen.

Was die Umlaute betrifft, wo liegt das Problem ? Sind es Ascii Zeichen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#7

Re: Problem mit Serienbrief

  Alt 10. Jan 2005, 21:04
also, wenn ich mehrere Datenquellen angebe, aus welchen Tabellen der Datenbank die Felder sind, gebe ich unter DBQuelle die Pfade an, wo die Tabellen liegen und unter DBFelder dann die Tabelle.Feld einfach nur als String?!
Gruß
Chrissy
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Problem mit Serienbrief

  Alt 10. Jan 2005, 23:34
Du machst einen grundlegenden Denkfehler. 8) Word kennt nur eine Datenquelle und ein Hauptdokument. Letzteres ist z.B. ein Blatt Papier, welches Platzhalter enthält. Diese stammen aus der Datenquelle. Diese ist jetzt wichtig, denn diese Daten kommen aus deinem Datenbestand. Allerdings über den Umweg einer Textdatei.

Welche Daten Du da rein packst spielt keine Rolle. Das Hauptdokument fügt alles aus der Datenquelle ein und fertig. Du mußt also nur dafür sorgen, daß nichts fehlt.
Gruß
Hansa
  Mit Zitat antworten Zitat
chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#9

Re: Problem mit Serienbrief

  Alt 10. Jan 2005, 23:49
ok, jetzt verstehe ich gar nichts mehr....

ich habe meine zu grunde liegende Datenbank in Delphi mit Paradox Tabellen, ok, mag ein Fehler sein, angelegt. Die Daten die in den Serienbrief müssen stammen aus einer Datenbank, aber unterschiedlichen Tabellen (Habe keine Datei die die Datenbank komplett beschreibt, sondern nur die einzelnen verknüpften Tabellen).
Also habe ich unter DBQuellen aus der Selectanweisung die kompletten Tabellen mit Inner Join on rausgesucht....
So wie ich dich verstehe, ist das auch totaler murks....

Gruß
Chrissy
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Problem mit Serienbrief

  Alt 11. Jan 2005, 00:46
Zitat von chrissy:
ok, jetzt verstehe ich gar nichts mehr...
So schwer ist das doch gar nicht. Der angesprochene "Denkfehler" bezieht sich auf die Tabellen und das was Word davon abkriegt. Wenn Du sogar einen Join verwendest, dann entsteht eine Datenmenge, nicht etwa so viele wie Tabellen da sind.

Diese Datenmenge muß in die Datenquelle und die muß so zusammengebaut sein, daß alle gewünschten Informationnen bereit stehen. Und das schreibt man in die Datei und liest sie im Word ein. Mit Paradox hat das ganze übrigens nichts zu tun.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz