Unter LibreOffice 3.4.4 (ungetestet) siehe Abbildung:
PDF Datei aus Datenbank erzeugen
Moderator: Moderatoren
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: PDF Datei aus Datenbank erzeugen
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: PDF Datei aus Datenbank erzeugen
Wenn Du das Abbild richtig angeguckt hättest, wüsstest Du jetzt, dass es sich beim Abbild um eine Seriendruck für PDF-Dateien als Druckausgabe mit einzelnen Druckjobs je Datensatz handelt. Also genau das nach dem Du ursprünglich gefragt hast.
Was heißt nach Datum filtern ?
Wenn Du nur bestimmtes Datensätze benötigst, dann musst Du eben eine entsprechende Abfrage (SQL) in Base formulieren oder die Schalterleiste (Filter) im Fenster Seriendruck gemäß Abbild verwenden.
Was heißt nach Datum filtern ?
Wenn Du nur bestimmtes Datensätze benötigst, dann musst Du eben eine entsprechende Abfrage (SQL) in Base formulieren oder die Schalterleiste (Filter) im Fenster Seriendruck gemäß Abbild verwenden.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: PDF Datei aus Datenbank erzeugen
Hallo,
wie Du schreibst, möchtest Du die Seriedruckfunktion zur Erstellung deiner .pdf's verwenden. Nach meinem Verständnis kann das nicht funktionieren, den diese Funktion erzeugt immer aus einem Datensatz genau ein Dokument, ob die nun später gesamtheitlich zusammengefaßt werden oder nicht.
Hinter der Funktion Serienbrief steht folgende Funktion http://api.openoffice.org/docs/common/r ... Merge.html, die auch per Makro ansprechbar ist, kannst Du im Forum suchen, ggf. per Google-Suche
Da Du aber sicherlich mehrere Datensätze pro Dokument verarbeiten möchtest, klappt das nicht, es sein denn Du schaffst es, alle Daten zu einer Person per Abfrage oder View genau in einem Datensatz zusammenzufassen, was schwer sein dürfte.
Mit Makros kannst Du deine gewünschte Funktion umsetzen, da mußt Du allerdings Einiges programmieren.
Ich habe es für einen ähnlichen Fall einmal so gemacht:
- per Makro-MailMerge habe ich mir für jede Person ein .odt Dokument mit Personendaten erzeugt und abgespeichert.
- dann eine Schleife über alle diese Dokumente gemacht. Jedes Dokument geöffnet, dazugehörige personenspezifischen Daten aus der DB eingelesen und ins Dokument eingetragen, dann als .pdf gespeichert.
Die wichtigsten Befehle, quasi als Suchliste zu verwenden, lauten:
Zum Erzeugen der Serienbriefe:
Zum Erstellen der spezifischen .pdf's
Daten aus der DB auslese:
hier hängt es jetzt davon ab wie Du die Daten ins Writer Dokument bringen möchtest:
in eine Tabelle:
oder quasi eintippen mit dem Cursor:
speichern als .pdf(geht auch ohne Dispatcher "storetourl" oder "storeasurl"):
Gruß R
wie Du schreibst, möchtest Du die Seriedruckfunktion zur Erstellung deiner .pdf's verwenden. Nach meinem Verständnis kann das nicht funktionieren, den diese Funktion erzeugt immer aus einem Datensatz genau ein Dokument, ob die nun später gesamtheitlich zusammengefaßt werden oder nicht.
Hinter der Funktion Serienbrief steht folgende Funktion http://api.openoffice.org/docs/common/r ... Merge.html, die auch per Makro ansprechbar ist, kannst Du im Forum suchen, ggf. per Google-Suche
Da Du aber sicherlich mehrere Datensätze pro Dokument verarbeiten möchtest, klappt das nicht, es sein denn Du schaffst es, alle Daten zu einer Person per Abfrage oder View genau in einem Datensatz zusammenzufassen, was schwer sein dürfte.
Mit Makros kannst Du deine gewünschte Funktion umsetzen, da mußt Du allerdings Einiges programmieren.
Ich habe es für einen ähnlichen Fall einmal so gemacht:
- per Makro-MailMerge habe ich mir für jede Person ein .odt Dokument mit Personendaten erzeugt und abgespeichert.
- dann eine Schleife über alle diese Dokumente gemacht. Jedes Dokument geöffnet, dazugehörige personenspezifischen Daten aus der DB eingelesen und ins Dokument eingetragen, dann als .pdf gespeichert.
Die wichtigsten Befehle, quasi als Suchliste zu verwenden, lauten:
Zum Erzeugen der Serienbriefe:
Code: Alles auswählen
StarDesktop.loadComponentFromURL(Url, "_blank", 0, FileProperties0())
MailMerge = createunoservice("com.sun.star.text.MailMerge")
Daten aus der DB auslese:
Code: Alles auswählen
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatabaseContext.getByName(oComponent.getLocation())'Hier wird der aktuelle Datenbankname ermittelt
Verbindung = Datenquelle.GetConnection("","")
SQL_Anweisung = Verbindung.createStatement()
Sql_Abfrage=SQL_Anweisung.executeQuery("select ""VORNAME"", ""NACHNAME"" from ""Tabelle"" where ""Rechnung drucken""= true")
in eine Tabelle:
Code: Alles auswählen
myTables = createunoservice("com.sun.star.text.TextTables")
myTables = document.getTextTables
myTable = createunoservice("com.sun.star.text.TextTable")
myRow = createunoservice("com.sun.star.text.TextTableRow")
myTable = myTables.getByName("Tabellenname")
Code: Alles auswählen
odoc = thisComponent
otext=oDoc.Text
ocursor=otext.createTextCursor()
Code: Alles auswählen
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "URL"
args1(0).Value = "Pfad zur Datei.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
dispatcher.executeDispatch(document_loadet, ".uno:ExportDirectToPDF", "", 0, args1())
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO