Inhalt von Serienbrieffeld während Makro ausführung auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

boca
Beiträge: 4
Registriert: Fr, 17.02.2023 22:51

Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von boca »

Hallo

ich habe einen Serienbrief den ich Mit Makros aufbereite. Das funktioniert auch alles soweit gut. Nur brauche ich den Wert ich eines von den Serienbrieffeldern um im Makro Dinge zu berechnen. Beim Drucken der Serienbriefe wird automatisch das Makro aufgerufen - das ist alles okay.

Ich weiß auch welches die Serienbrieffelder sind und frage auf sie ab mit:

DIM oTextFeld As Object (Objekt für die Textfelder im Writer die ich mir in einer Schleife hole)

oTextfeld.supportsService("com.sun.star.text.TextField.Database")

aber in oTextfeld.content steht immer der der Serienbrieffeld-Name z.B. "<kuerzel>" (der Feldname wie er im Serienbrief eingegeben ist)

Ich habe das Forum und weitere Seiten durchsucht - kann aber nichts finden wie ich den Inhalt des Feldes herausfinden kann.

Kann es sein, das der Serienbrief beim Drucken erst das Makro ausführt bevor er die Ersetzung der Serienbrieffelder durchführt un man daher im Macro nicht auf den Inhalt zugreifen kann?
Hat irgend jemand eine Idee wir ich den Inhalt erreichen kann?

In oTextfeld.TextFieldMaster sind der Name der Datenbank, Tabelle und Feldname alles enthalten - ich habe aber nicht den Satzzähler gefunden :-(.

Vielen Dank für dieses Super Forum
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von mikeleb »

Hallo,
bevor man darüber nachdenkt und eine Lösung bastelt (Datenbank auslesen oder so) wäre interessant, was du mit der Information (dem Text im Serienbrieffeld) eigentlich anfangen willst. Vielleicht gibt es ja eine einfachere Lösung ohne Makro.
Gruß,
mikeleb
boca
Beiträge: 4
Registriert: Fr, 17.02.2023 22:51

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von boca »

Hallo,

ich verwende diesen Wert im Macro um auf Daten zuzugreifen und mir aus anderen Dateien Werte zu holen und Berechnungen durch zu führen- das habe ich schon alles optimiert bis auf den einen Punt.
Im Moment behelfe ich mir damit den Wert manuel in einem Eingabefenster ein zu geben - das geht zwar bei 2, 3 Briefen ist aber bei mehr sehr lästig und Fehleranfällig weil ich für jeden Brief eizeln den Druckdialog aufrufen muss, den Datensatz selektieren muss, den richtigen Wert mir merken um ihn dann in dem Eingabefenster einzugeben. :-(

Vielen Dank schon mal
Windows 10, Apache OpenOffice 4.1.13
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von mikeleb »

Hallo,
eine Variante wäre, diese "Werte aus anderen Dateien" in die Datenquelle des Seriendokuments einzubauen (wahrscheinlich aber unpraktisch für dich).
Das andere wäre, das Makro auf den erstellten fertigen Serienbrief anzuwenden.
Gruß,
mikeleb
boca
Beiträge: 4
Registriert: Fr, 17.02.2023 22:51

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von boca »

Hallo,
nein das mit dem zusammenführen der Dokumente geht nicht und zum erstellen der Serienbriefe brauche ich auch die sehr umfangreichen Berechnungen die ich in den Makros durchführe schon.
Vielen Dank - vieleicht hat ja irgendjemand anderes noch eine Idee.
Windows 10, Apache OpenOffice 4.1.13
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von mikeleb »

Hallo,
nur zu meinem Verständnis: Du hast ein Serienbrief(formular) mit diversen Serienbrieffeldern. Wenn du das Dokument per MAkro durchfostest bekommst du die entsprechenden Textfelder. Diese Felder haben aber keinen Inhalt bzw. Wert, weil diese erst beim Erstellen des eigentlichen Serienbriefes befüllt werden. Es ist daher unmöglich den Wert abzufragen um damit am Serienbrief(formular) etwas zu ändern (oder ich verstehe etwas grundsätzlich falsch).
Kann es sein, das der Serienbrief beim Drucken erst das Makro ausführt bevor er die Ersetzung der Serienbrieffelder durchführt un man daher im Macro nicht auf den Inhalt zugreifen kann?
So ist es.
Daher mein Vorschlag: erst den Serienbrief als neues Dokument erstellen/drucken und dann dieses Dokument per Makro bearbeiten.
Gruß,
mikeleb
boca
Beiträge: 4
Registriert: Fr, 17.02.2023 22:51

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von boca »

Hallo mikeleb,

selbst wenn du recht hast und kein direkter Zugriff auf den Inhalt der Serienbrieffelder möglich sein sollte, weil sie noch nicht ersetzt sind, ist der Weg über ein speichern der ausgefüllten Serienbriefe und danach nochmaliges öffnen und dann mit einem Makro den Brief zu ändern nicht Sinnvoll meine Ich, weil viel zu Aufwändig den Serienbrief noch mal komplett neu zu bauen.

Openoffice weiss ja zum Zeitpunkt des Druckes (== Makro Ausführung) welcher Datensatz genützt wird, auch wenn die Felder im Dokument noch nicht ersetzt sein sollten. Also sollte es möglich sein den Cursor auf der Adressdatenbank zu erhalten oder auch eventuell den kompletten selektierten Datensatz. Alles weitere wäre dann einfach - die Benötigten Informationen sind ja vorhanden, nur die Frage ist wie man sie erreichen kann.
Da hoffe ich doch noch dass jemand hierzu eine Idee hat.
Viele Größe und Danke boca
Windows 10, Apache OpenOffice 4.1.13
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Inhalt von Serienbrieffeld während Makro ausführung auslesen

Beitrag von F3K Total »

Moin,
es läßt sich wärend des per Makro gestarteten Mailmerge Prozesses mit einem MailMergeEventListener auf die einzelnen Dokumente zugreifen.
Gruß und viel Erfolg
R
Antworten