Reise ins Openoffice-UNOVersum

Kontextabhängige Dienste

4.12.2009 von Redaktion pcmagazin

ca. 2:30 Min
Ratgeber
  1. Coole Tricks für Openoffice - Makros programmieren leicht gemacht
  2. Jenseits vom Horizont
  3. Kontextabhängige Dienste
  4. Immer dialogbereit
  5. Alles gesammelt

Im Gegensatz dazu lassen sich kontextabhängige Dienste nur in Verbindung mit anderen Objekten - Dokumenten zumeist - verwenden. Der Dienst Text etwa öffnet den Zugang zu sämtlichen Inhalten eines Dokuments. Um ihn zu nutzen, benötigt man zunächst aber einen Verweis auf das Dokument selbst. Den erhält man am einfachsten für das aktuelle Dokument, und zwar mit Hilfe des Schlüsselworts ThisComponent:

Das Objekt objDokument stellt nun den kontextabhängigen Dienst Text bereit. Um ihn nutzen zu können, ist eine weitere Zuweisung an eine entsprechende Objektvariable erforderlich:

Dim objText As ObjectobjText = objDokument.Text

Egal, ob kontextabhängig oder -unabhängig: Ist ein UNO-Objekt einmal erstellt, lassen sich seine Eigenschaften und Methoden unmittelbar nutzen. Die getString- Methode von objText beispielsweise liefert den gesamten Dokumenttext als Zeichenkette, die ein Makro per MsgBox-Anweisung sichtbar macht:

MsgBox objText.getString

Wer die Eigenschaften und Methoden eines Objekts sinnvoll nutzen will, muss aber erst einmal wissen, welche es gibt. Dazu muss man sich die notwendigen Infos anderweitig beschaffen - beispielsweise von den Objekten selbst. Die verfügen durchweg über die Methoden DBG_properties und DBG_medethods, die jeweils eine Zeichenkette mit den Namen aller verfügbaren Objekteigenschaften respektive - methoden bereitstellen:

MsgBox objText.DBG_propertiesMsgBox objText.DBG_methods

Sternenhimmel

Grundlagen der Makroentwicklung in Openoffice
Wenn OpenOffice 3.1 unter Windows Vista läuft, muss die Verwendung eigener Dialoge eingeschaltet sein, damit FilePicker überhaupt einen Dateidialog anzeigt.
© Archiv

Für Dokumente ist der kontextunabhängige Dienst Desktop, der im UNO-Modul frame residiert, sicherlich der wichtigste. Weil Stars auch im UNOversum bevorzugt werden, kann man sich das Anlegen eines eigenen Objekts per createUnoService- Funktion sparen und die Eigenschaften und Methoden direkt über das Schlüsselwort StarDesktop abrufen.

Die Methode loadComponentFromURL etwa ermöglicht das Öffnen eines vorhandenen Dokuments, dessen Speicherort in einer plattformunabhängigen URL-Notation wie file:///home/ralf/Artikel.odt anzugeben ist.

Weil das für Windows-Anwender ziemlich gewöhnungsbedürftig ist, dürfen diese auf die Dienste der Basic-Funktion convertToURL zurückgreifen, die einen Windows-üblichen Pfadnamen in das URL-Format übersetzt. Die übrigen Argumente der loadComponentFromURL-Methode - der Text _blank, eine Null sowie ein leeres Variant-Array - spielen hier keine Rolle.

Im Erfolgsfall liefert die Methode einen Verweis auf das geöffnete Dokument zurück, den man für die spätere Weiterverwendung in einer Objektvariablen speichern sollte. Das Beispiel öffnet das Calc-Dokument D:\Tabelle.ods:

Dim strURL As StringDim objDokument As ObjectDim vntParms() As VariantstrURL = convertToUrl _("D:\Tabelle.ods")objDokument = StarDesktop _.loadComponentFromURL _(strURL, "_blank", 0, vntParms())

Mit der loadComponentFromURL-Methode lassen sich auch neue Dokumente anlegen. Dazu muss man ihr eine besondere URL übergeben, die sich aus dem Präfix private:factory/ und einem der folgenden Bezeichner, der die Dokumentart angibt, zusammensetzt:

swriter Textdokumentscalc Tabellendokumentsimpress Präsentationsdraw Zeichnungsmath Formel

Das folgende Beispiel legt ein neues Writer-Dokument an, das sich anschließend über die Variable objDokument ansprechen lässt :

strURL = "private:factory/swriter"objDokument = _StarDesktop _.loadComponentFromURL(strURL, _"_blank", 0, vntParms())
Grundlagen der Makroentwicklung in Openoffice
Über welche Eigenschaften und Methoden ein UNO-Objekt verfügt, verraten dessen Methoden DBG_properties und DBG_methods.
© Archiv

Neue Text-, Tabellen oder Zeichnungsdokumente werden stets auf der Grundlage der jeweiligen Standarddokumentvorlage angelegt. Sollen die Gestaltungsvorgaben einer anderen Dokumentvorlage gelten, übergibt man loadComponentFromURL anstelle der private:factory-URL einfach den Pfadnamen der zutreffenden *.ott-(Writer), *.ots-(Calc) oder *.otg-Datei (Draw).

Das Speichern eines neuen Dokuments erledigt dessen storeAsURL-Methode, wenn man ihr den gewünschten Speicherort plus Dateinamen im URL-Format sowie ein leeres Variant-Array als Argumente übergibt. Das Beispiel

strURL = ConvertToUrl _("D:\Briefe\Anfrage.odt")objDokument.storeAsURL(strURL, _vntParms())

speichert das Writer-Dokument unter dem Dateinamen Anfrage.odt im Ordner D:\Briefe. Wurde ein OpenOffice-Dokument bereits gespeichert, lassen sich alle Änderungen daran ganz einfach und ohne Angabe von Argumenten mit der store- Methode konservieren:

objDokument.store

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

Excel: Nur jede n-te Zelle addieren

Office-Tipps für Einsteiger

Excel: Nur jede n-te Zelle addieren

Nicht selten muss man aus Spalten oder Zeilen nur jede zweite, dritte, vierte ... Zelle addieren. Mit einer Formel geht das sehr einfach.

lexoffice

Anzeige Das Office im Web

lexoffice: Einmal Büro zum Mitnehmen, bitte!

Mit lexoffice schreiben Sie Rechnungen und erledigen Bankgeschäfte, wann und wo es gerade passt. Mehr als ein Internetanschluss ist dafür nicht…

Kalender synchronisiert auf iPad

Zeit-Management

Outlook, Google und Co.: Kalender synchronisieren - 9…

Kalender auf dem Smartphone, PC und im Web synchronisieren - mit unseren 9 Tipps schaffen Sie genau das. Verpassen Sie keinen Termin mehr!

shutterstock/ ra2studio

Microsoft Office

Excel-Daten visualisieren: 8 Tipps für mehr Übersicht

Wir zeigen, wie Sie Daten in Excel-Tabellen visualisieren. Damit steigern Sie die Übersicht und Lesbarkeit in Ihren Kalkulationen.

Outlook - Logo

Office-Tipp

Outlook: Kalenderwochen immer anzeigen

Wir zeigen, wie Sie in Outlook die Kalenderwoche anzeigen lassen können. Unser Office-Tipps sorgt für Durchblick bei der Terminplanung.