Writer: In Makro Inhalt von Datenbankfeldern verwenden

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

Moderator: Moderatoren

chrischii
*
Beiträge: 14
Registriert: So, 01.11.2015 10:36

Writer: In Makro Inhalt von Datenbankfeldern verwenden

Beitrag von chrischii »

Hallo zusammen,

ich beschäftige mich erst seit kurzem mit der Makroprogrammierung.
Ich habe ein Writer-Dokument, welches einige Felder aus einer Datenbank verwendet (Adressdaten,... die aus einer mysql kommen und über eine base-Abfrage abgerufen werden. Im Writer Dokument wird dann über F4 der Datensatz gewählt und die Inhalte eingefügt.

Nun zu meinen Fragen:
- Wie kann ich in einem Basic-Makro auf den Inhalt eines solchen Feldes zugreifen? Ziel ist es, die Schritte bis zur endgültigen Dateiablage zu automatisieren und anhand eines Feldes kann ich Namen, Pfad usw herleiten. Das Zerlegen des Strings und das Speichern tut, aber leider nicht die Abfrage des Feldinhaltes.
- Wenn das Makro komplett tut - wie kann ich es am besten an andere User verteilen? In der Dokumentvorlage einbauen?
- Wie kann man den Makroaufruf beschleunigen? Buttons im Dokument wären möglich, wenn diese nicht im Ausdruck + pdf erscheinen

VG
Christian
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Writer: In Makro Inhalt von Datenbankfeldern verwenden

Beitrag von Stephan »

Wie kann ich in einem Basic-Makro auf den Inhalt eines solchen Feldes zugreifen?
siehe Kapitel 14.10.1 in:
https://www.uni-due.de/~abi070/ooo.html

z.B.:

Code: Alles auswählen

Sub DB_fields()
  oMasters = ThisComponent.getTextFieldMasters()
  oMasterNames = oMasters.getElementNames()
  For i = LBound(oMasterNames) to UBound(oMasterNames)
  	If Left(oMasterNames(i), 38) = "com.sun.star.text.fieldmaster.DataBase" Then
		tmp = oMasters.getByName(oMasterNames(i))
		MsgBox tmp.DependentTextFields(0).Content
	End If
  Next i
End Sub
Wenn das Makro komplett tut - wie kann ich es am besten an andere User verteilen? In der Dokumentvorlage einbauen?
Das kommt wohl auf die genauen Rahmenbedingungen an, z.B. ist eine Dokumentvorlage ausreichend um mal eben so ein Makro zu verteilen, aber lässt z.B. kein Updaten der Makros zu. z.B. wäre ein Extension auch besser wenn die Dokumentvorlage automatisch in die Vorlagenveraltung eingebaut werden soll um später die Vorlagenhirarchie für Aktualisierung von auf dieser Vorlage aufbauenden Dokumenten zu nutzen. Das sind jetzt nur ein paar dürre Beispiele.

Generell könnte man vielleicht formulieren das eine Extension für komplexere Anwendungsfälle richtig bis nötig ist und ein Dokumentmakro eher für einfachere Dinge.
Wie kann man den Makroaufruf beschleunigen? Buttons im Dokument wären möglich, wenn diese nicht im Ausdruck + pdf erscheinen
Naja, dann nimm einen Button und stelle ein das der nicht gedruckt wird: Kontextmenü des Buttons, dort "Kontrollfeld..." im erscheinenden Dialog Register "Allgemein" und "Druckbar" auf "Nein" setzen. Das gilt dann auch fürs PDF.



Gruß
Stephan
chrischii
*
Beiträge: 14
Registriert: So, 01.11.2015 10:36

Re: Writer: In Makro Inhalt von Datenbankfeldern verwenden

Beitrag von chrischii »

Hallo stephan


vielen Dank für die schnelle Antwort und den Link in der Doku. Werde es gleich testen

Vg
Christian
Antworten