ich habe ein Formular ("Einsatzbericht") im Writer erstellt, dass einige Daten aus einer BASE-Datenbank bekommt. Die BASE-Datenbank wiederum greift auf eine CSV-Datei zu, die aus SAP ausgegeben wird. Beim Öffnen des Dokuments wird es als PDF exportiert und schließt sich wieder. Das Makro, das dahinterliegt, habe ich mir aus verschiedenen Foren zusammengeschustert, da ich selbst vorher nie mit Makros zu tun hatte. (Steht auch unten)
Nun zu meinem Problem:
In diesem Formular gibt es mehrere Datumsfelder ("Datum_Einsatz", Datum_Unterschrift1", "Datum_Unterschrift2"). In diesen Datumsfeldern soll das aktuelle Datum zur Zeit des Exports (per Makro) eingefügt werden. Ein Feldbefehl anstelle eines Datumsfeldes ist nicht sinnvoll, da das Dokument i.d.R. nicht an einem Tag ausgefüllt wird und das Datum daher noch zu ändern sein muss.
Daher meine Frage: Wie befülle ich ein Formularfeld durch ein Makro?
Ob es sich um ein Datumsfeld oder Textfeld handelt ist in dem Fall egal, da aus einem Datumsfeld beim Export scheinbar ein normales Textfeld gemacht wird.
Eine mögliche Alternative wäre, das Datum in der CSV-Datei mitzugeben, allerdings könnte ich das Befüllen per Makro auch an anderer Stelle gebrauchen.
Grüße
Henning
Falls es hilft:
Betriebssystem: Windows 10
Libre Office Version: 5.3.1.2
Makro:
Code: Alles auswählen
Sub PDF_Export_Close_Document
rem ----------------------------------------------------------------------
rem Variablen definieren
dim document as object
dim dispatcher as object
dim number as string
dim datum as string
dim args1(1) as new com.sun.star.beans.PropertyValue
rem ----------------------------------------------------------------------
rem Zugriff auf das Dokument
rem Daten setzen
datum = date
--- hier sollen die Felder gefüllt werden ---
rem Einsatznummer auslesen
number = ThisComponent.drawpage.forms.getByName("Einsatzbericht").getByName("Einsatznummer").text
number = Trim(number)
rem PDF-Export
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "URL"
args1(0).Value = "file:///H:/SAP_Service/ERE/Dokumente/" & number & "/" & number &"_Einsatzbericht.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
rem ----------------------------------------------------------------------
rem Dokument schließen
ThisComponent.close(true)
End sub