Base Datenbank Report /Bericht drucken und per Mail senden, Macro

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Base Datenbank Report /Bericht drucken und per Mail senden, Macro

Beitrag von Hiker »

Hallo,

ein Report aus Base erzeugt in LibreOffice ein normales Writer-Dokument, das das Du ganz normal weiterbearbeiten kannst.

Du kannst auch Macros einsetzen, Sie können nur nicht im Dokument gespeichert sein, da Base sie dort nicht erzeugt (Oder Du musst rausfinden, welche Vorlage für die Reports verwendet wird und dort ansetzen.)

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Base Datenbank Report /Bericht drucken und per Mail senden, Macro

Beitrag von F3K Total »

Hallo,
ja, es ist möglich, aber nur mit Makros.
Tausend Wege führen nach Rom.

Ich würde das folgendermaßen machen:
  • In der Datenbank gibt es sicherlich eine Tabelle/Abfrage/Ansicht, in der die zu exportierenden Datensätze stehen. Diese würde ich per Makro auslesen und in ein Resultset schreiben. Je nachdem von wo du den Export starten willst, kannst du entweder einen Formularinhalt auslesen, oder per Makro direkt auf die Datenbank zugreifen, hier im Forum, oder im Base-Handbuch gibt es viele Beispiele dazu.
  • Nun würde ich in dieses Makro eine Schleife einbauen, die das Resultset durchläuft und in jedem Umlauf die ID eines einzelnen Datensatzes ermittelt.
  • Die aktuelle ID würde ich innerhalb der Schleife in eine einzeilige Filtertabelle der Datenbank schreiben. Auf Basis dieser Filtertabelle gibt es eine weitere Abfrage/Ansicht in der DB, die die Grundlage des Berichtes bildet, die eben immer nur einen, gerade zu exportierenden Datensatz beinhaltet.
  • Wenn man den Bericht nun innerhalb der Schleife per Makro öffnet und die entstandene Datei unter einem datensatzspezifischem Namen speichert, z.B. als .pdf, kann man sie auch einzeln per Mail verschicken.
Um den Bericht "Ausgabe" zu öffnen geht z.B. folgender Code:

Code: Alles auswählen

    oreportdoc = thisdatabasedocument.reportdocuments.getbyname("Ausgabe")
    oreport = oreportdoc.open
Um diesen Bericht per Makro als .pdf zu speichern und anschließend zu schließen geht:

Code: Alles auswählen

    sURL = "file:///C:/Users/<USER>/Desktop/20200823_Export_ID_425.pdf"
    dim pdfProperties(1) as new com.sun.star.beans.PropertyValue
    pdfProperties(0).Name = "FilterName"
    pdfProperties(0).Value = "writer_pdf_Export"
    oreport.storeToURL(sURL, pdfProperties())
    oreport.close -1
Ist alles viel Arbeit, wenn es fertig ist, funktioniert es zuverlässig, habe ich schon gemacht.

Gruß R
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Base Datenbank Report /Bericht drucken und per Mail senden, Macro

Beitrag von Hiker »

flex18 hat geschrieben: Mo, 24.08.2020 09:17 Hallo,
vielen Dank für Eure Antworten.
Wäre es auch möglich die Rechnungen am Ende auch automatisch per Mail durch das Programm/Base senden zu lassen (per Macro), also nicht händisch von mir.
...
oben stand schon:
Wanderer hat geschrieben:
ein Report aus Base erzeugt in LibreOffice ein normales Writer-Dokument, das das Du ganz normal weiterbearbeiten kannst.

Du kannst auch Macros einsetzen ...
also ja, auch Mailversand ist möglich.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten