Reise ins Openoffice-UNOVersum

Immer dialogbereit

Immer dialogbereit

Häufig entscheidet nicht der Entwickler eines Makros darüber, welches Dokument zu öffnen ist, sondern dessen Anwender. Dann schlägt die Stunde des FilePicker- Dienstes, der ein Dialogfeld für die Auswahl von einer oder mehreren Dateien bereitstellt:

Das erzeugte FilePicker-Objekt verfügt über diverse nützliche Methoden. Mit setDisplayDirectory etwa kann der Entwickler den Startordner festlegen, dessen Inhalt der Dialog beim Aufruf anzeigen soll:

objDateiDlg.setDisplayDirectory _convertToURL("D:\Briefe")

Die beliebig oft aufrufbare appendFilter-Methode erlaubt das Hinzufügen eines Dateifilters für die Auswahl eines bestimmten Dateityps. Dazu muss man der Methode eine Beschreibung des Dateityps, die als Filtertext sichtbar ist, sowie eine passende Dateimatrix übergeben. Das Beispiel fügt dem FilePicker-Dialog drei Filter für die Anzeige von Writer-, Calc- und beliebigen anderen Dateien hinzu:

objDateiDlg.appendFilter _"Writer-Dokumente (*.odt)" , "*.odt"objDateiDlg.appendFilter _"Calc-Dokumente (*.ods)" , "*.ods"objDateiDlg.appendFilter _"Alle Dateien (*.*)" , "*.*"

Welcher Filter beim Dialogaufruf eingestellt sein soll, lässt sich mit Hilfe der setCurrentFilter-Methode bestimmen:

objDateiDlg.setCurrentFilter _"Writer-Dokumente (*.odt)"

Die execute-Methode zeigt das Dialogfeld an und verrät mit ihrem Rückgabewert, ob der Anwender den Dialog abgebrochen (Wert = 0) oder regulär per OK- Schaltfläche (Wert = 1) beendet hat. Im letzten Fall liefert die getFiles- Methode ein String-Array zurück, das die Pfadnamen aller ausgewählten Dateien im URL-Format enthält.

Die erste (und in der Regel auch einzige Datei) ist im Array-Element mit der Indexzahl 0 zu finden. Das Beispiel bringt den Dateiwahldialog zur Anzeige und zeigt anschließend den Pfadnamen der ausgewählten Datei per MsgBox an:

If objDateiDlg.execute() = 1 ThenvntDateien() = objDateiDlg.getFilesMsgBox vntDateien(0)End If
Grundlagen der Makroentwicklung in Openoffice

© Archiv

API-Referenz und der hier zu sehende Developer's Guide liefern zwar die aktuellsten (Online-) Informationen, lassen es jedoch an Übersichtlichkeit fehlen.

Leider weist die aktuelle OpenOffice-Version 3.1 in Verbindung mit Windows Vista einen Fehler auf, der die Anzeige des systemeigenen Dateidialogs via FilePicker verhindert. Als Workaround empfiehlt sich das Einschalten des Kontrollkästchens OpenOffice.org-Dialog verwenden, das im Register Allgemein des Optionen-Dialogs (Befehl Extras/Optionen) zu finden ist.

Der FilePicker-Service nutzt anschließend die OpenOffice-eigene Version des Dialogs, die auf allen Systemplattformen funktioniert.

Der Bug wirkt sich übrigens nicht auf die Dienste des FolderPicker-Services aus, der die interaktive Auswahl eines Ordners erlaubt:

Dim objOrdnerDlg As ObjectobjOrdnerDlg = createUnoService _("com.sun.star.ui.dialogs.FolderPicker")

Das erzeugte FolderPicker-Objekt verfügt gleichfalls über eine Methode namens setDisplayDirectory, mit der man das Anfangsverzeichnis des Dialogs festlegen kann:

objOrdnerDlg.setDisplayDirectory _convertToURL("D:\Eigene Dateien")

Die execute-Methode zeigt das Dialogfeld an und signalisiert mit dem Rückgabewert 1 ein reguläres Ende. In dem Fall liefert die getDirectory-Methode dem Makro den (URL-)Pfad des gewählten Ordners frei Haus:

If objOrdnerDlg.execute() = 1 ThenMsgBox objOrdnerDlg.getDirectoryEnd If

Mehr zum Thema

Word - Text um Bild
Office-Tipp

In Word 2010 und 2013 gibt es Bilderrahmen mit einer pfiffigen Funktion für das Freistellen von Bildinhalten. Wir zeigen, wie es geht.
Wir zeigen den normgerechten Aufbau bei Briefen mit Microsoft Word.
Anleitung

Ein DIN-gerechter Aufbau erleichtert dem Lesenden die Übersicht. Word bietet dafür mit seinen Vorlagen und Funktionen alle Voraussetzungen.
Excel - Nettoarbeitstage
Office-Tipp

Wir erklären, wie Sie in Excel etwa für eine Arbeits- oder Urlaubsplanung die Wochenenden herausrechnen und die Nettoarbeitstage berechnen.
Kalender synchronisiert auf iPad
Zeit-Management

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

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