Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Serienbriefe mit OpenOffice (https://www.delphipraxis.net/159641-serienbriefe-mit-openoffice.html)

lcm 6. Apr 2011 15:03

Serienbriefe mit OpenOffice
 
Moin!
ich versuche jetzt schon seit Tagen aus Delphi einen OpenOffice-Serienbrief zu erstellen. Als Datenquelle möchte ich eine csv-Datei verwenden. Ich habe auch schon das Web durchwühlt, finde aber kein komplettes funktionierendes Beispiel. Hat jemand eine Idee oder einen Link. Danke im Voraus.

pmoegenb 6. Apr 2011 16:50

AW: Serienbriefe mit OpenOffice
 
Ich benutze schon seit Jahren .txt-Files als Datenquelle zur Serienbriefschreibung. Um die Serienbriefschreibung vom eingesetzten Office-Produkt unabhängig zumachen mische ich jedoch nicht mittels Delphi sondern starte lediglich das entsprechende Dokument mit
Delphi-Quellcode:
If Sender = SpeedButton2 then
        begin
        if not FileExists(DBEdit1.Text) then
           begin
           Beep;
           Messagedlg('Dokument im angegebenen Pfad nicht gefunden.',
           mtError, [mbOK], 0);
           exit;
           end
        else
           begin
           try
           ShellExecute(0, 'open', PChar(DBEdit1.Text), nil, nil, SW_SHOWMAXIMIZED);
           except
           on E:Exception do
           Messagedlg(E.Message, mtError, [mbOK], 0);
           end;
           end;
        end;
Der eigentliche Seriendruck muss vom Benutzer in OOo/Word etc. ausgelöst werden. Für OOo muss eine Datenbankdatei .odb angelegt sein, die z. B. Pfad zur .txt- oder .csv-Datei, Texttrenner etc. enthält.

Hier eine kleine Beschreibung für das Anlegen einer Datenbankdatei und wie ich die Datensätze übergebe:

Als Serienbriefe können bestehende und neue Dokumente verwendet werden. Die nachstehende Beschreibung über das Einrichten von Serienbriefe erfolgt auf der Grundlage von OpenOffice.org 3.1.

1. Klicken Sie auf die Menüoptionen Datei/Neu/Datenbank.

2. Im Datenbank-Assistent wählen Sie durch einen linken Mausklick die Option Verbindung zu einer bestehenden Datenbank herstellen und wählen aus der dann aktivierten Auswahlbox Text aus. Klicken Sie auf den Button Weiter>>.

3. Wählen Sie als Pfad zu den Textdateien Ihr persönliches Verzeichnis. Sie können stattdessen auch auf den rechts daneben liegenden Schalter Suchen klicken und damit das Verzeichnis auswählen.

4. Wählen Sie als Feldtrenner das Semikolon (;).

5. Wählen Sie als Texttrenner das doppelte Anführungszeichen (").

6. Wählen Sie als Dezimaltrennzeichen ein Komma (,) und als Tausendertrennzeichen einen Punkt (.).

7. Klicken Sie auf den Button Weiter>>und anschließend auf den Button Fertig stellen.

8. Im Fenster Speichern unter vergeben Sie einen Namen für die Verbindung und speichern diesen in ein Verzeichnis Ihrer Wahl.

lcm 7. Apr 2011 11:09

AW: Serienbriefe mit OpenOffice
 
Danke für deine Antwort. Das wäre die Notlösung. Ich möchte aber Alles von Delphi aus steuern. Der Anwender soll den fertigen Serienbrief bekommen.

pmoegenb 8. Apr 2011 09:08

AW: Serienbriefe mit OpenOffice
 
Vielleicht findest Du hier http://bernard.marcelly.perso.sfr.fr/index2.html etwas brauchbares.

lcm 8. Apr 2011 11:06

AW: Serienbriefe mit OpenOffice
 
Hallo Peter,
die Bibliothek hatte ich mir schon angeschaut. Es gibt hier mehrere Funktionen, leider aber keinen Serienbrief.
Lutz

pmoegenb 8. Apr 2011 11:47

AW: Serienbriefe mit OpenOffice
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Lutz,

vor einiger Zeit habe ich mal in dieser Richtung etwas gemacht und dazu auch zum Teil Code geklaut. Den Code findest Du als Anhang.
Wenn ich es noch richtig in Erinnerung habe, wird zum mischen MailMerge benötigt, der aber im Dokument vordefinierte Seriendruckfelder benötigt. Du kannst Dir ja mal SDK von http://download.openoffice.org/sdk/index.html herunterladen. Vielleicht kannst Du daraus mehr entnehmen.

Zu MailMerge hier http://www.oooforum.org/forum/viewtopic.phtml?t=48312 mehr.

lcm 11. Apr 2011 07:56

AW: Serienbriefe mit OpenOffice
 
Hallo Peter,
ich habe inzwischen schon viele Programmteile im Web gefunden. Leider noch kein zusammenhängendes funktionierendes Beispiel. Ich werde mich jetzt mal ins SDK einarbeiten. Vielleicht finde ich da ja eine Lösung. Ich melde mich dann mit dem Ergebnis. Zunächst vielen Dank.
Lutz


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 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