Begriffsklärung:
Als "DBC" bezeichne ich den "Database-Container", genauer: die Bedienoberfläche von OOBase. Als "Ordner" bezeichne ich das gleichnamige Organisationsmittel innerhalb des DBC - also nicht irgendwelche Ordner des Dateisystems!!
Worum es geht:
Innerhalb der DBC-Ansicht "Formulare" lassen sich über das Hauptmenü "Einfügen" neben Formularen, Abfragen, Tabellen usw. im Fenster "Formulare" auch sogenannte "Ordner" erstellen.
Meine Frage:
Wie spricht man Formulare, die sich in solchen Ordnern befinden per Makro an?
Die einfachste Methode ein Formular per Makro zu öffnen lautet bekanntlich:
Code: Alles auswählen
ThisDatabaseDocument.FormDocuments.getByName(sFormName).open
Etwas umständlicher geht’s dann noch mit "createUnoService", was aber von der Sache her nichts ändert.
Meine diversen "trial and error"-Versuche, mit dem Formularnamen auch den Ordnername (also quasi als "Pfad") zu übergeben, funktionierten nicht. Als Separator habe ich Slash, Punkt, Unterstrich und Plus-Zeichen ausprobiert und/oder alternativ den Ordner- und/oder Formularnamen in runde und/oder eckige Klammern gestellt ... alles ohne Erfolg.
Formular-Aufzählung hilft auch nicht weiter:
Die Namen aller im DBC existierenden Formulare lassen sich wunderbar mit folgendem Algo vorführen:
Code: Alles auswählen
DocObject = ThisDatabaseDocument.FormDocuments
NameArray = DocObject.getParent.FormDocuments.ElementNames
For n = 0 To Ubound(NameArray)
MsgBox "Index-Nr." & CStr(n) & ", Formular-Name: " & NameArray(n)
Next
Auch mit Xray konnte ich keine andere Eigenschaft dieser Objekte gegenüber den "normalen" Formularen entdecken.
Details:
In die unter OO-Base angelegten Ordner lassen sich z.B. thematisch zusammengehörige Formulare sehr übersichtlich einsortieren. Wer mit vielen unterschiedlichen Formularen innerhalb einer DB arbeitet, wird dieses Organisations-Hilfsmittel sehr schnell lieben lernen und nicht mehr missen wollen.
MSAccess-Spezis nennen diese Technik "gruppieren". Diese "Gruppen" sind dort aber in Wahrheit nur Verknüpfungen zu den diversen Datenbank-Objekten, die aber weiterhin fest an ihrem alten "Platz" (innerhalb des DBC) stehen bleiben.
Ganz anders OpenOffice: Hier kann man Formulare tatsächlich in Ordner "echt" verschieben oder kopieren. Damit lassen sich sogar Kopien gleichen Namens in verschiedenen Ordner (einschließlich Hauptfenster) verteilen. In solche Ordner kann man dann z.B. auch eigene Templates archivieren, die dadurch nicht flüchtige Vorlage von OpenOffice, sondern dauerhafter Bestandteil der unabhängigen ODB bleiben.
Die Technik, Formulare mit Ordnern zu sortieren wird seltsamerweise nirgendwo erwähnt: Star-Basic Handbücher, OO-Tutorials, Thomas Krummbein, Mathew Pitonyak, OO-Wicki, alle OO-Foren und auch Google kennt's nicht ... !
Handelt es sich bei diesen Formular-Ordnern um eine steckengebliebene OO-Entwicklung oder um einen Bug, der deshalb nirgendwo kommentiert wird?
Ich würde mich über eine zeitnahme Resonanz riesig freuen, weil sich bei meiner z.Zt. neu zu entwerfenden Datenbank ein "geht" oder "geht nicht" ganz maßgeblich auf die Organisations-Struktur (die ja bekanntlich imme ganz am Anfang seht) auswirken wird.
Herzliche Grüße aus Dresden: ejomi