[Gelöst] Welches Objekt-Modell für BASE-Fomulare?

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

Moderator: Moderatoren

ejomi
***
Beiträge: 84
Registriert: Mi, 06.09.2006 15:20

[Gelöst] Welches Objekt-Modell für BASE-Fomulare?

Beitrag von ejomi »

Einen schönen Tag an alle OO-Spezis!

OpenOffice-Lücken:
Drei Dinge fehlen mir am meisten:
  • Es gibt keine Möglichkeit, "echte" Unterformulare in ein Hauptformular einzubinden. Damit entfällt auch die Technik, dynamisch die Inhalte im "Frame" eines Hauptformulars auszuwechseln. Meine Vorstellung war - ähnlich der Menü-Auswahl einer Homepage - über stets sichtbare und gleichbleibende "Hauptschalter" blitzschnell zwischen diversen Ein/Ausgabemasken (= Formulare) zu wechseln, ohne dass sich dadurch das Gesamtbild der Hauptmaske ändert.
  • Es fehlt das Steuerelement "Registerkarte" (= Multipage). Damit entfällt auch die Technik, Inhalte eines statischen Formulars dynamisch über "Tabs" zu ändern bzw. zu visualisieren.
  • Es fehlt die Möglichkeit, die System-Menüleiste anzupassen bzw. auszutauschen. Ein - wie ich inzwischen weiß - bekannter Bug von OpenOffice verhindert das dauerhafte Ausblenden des System-Menüs. Bei Benutzung bestimmter Steuerelemente (z.B. Klick auf Kombinationsfeld) wird das Menü wieder sichtbar und bleibt es dann auch! Wenn man wenigstens die Möglichkeit hätte, den Inhalt dieses Menüs anzupassen, könnte man ja damit leben!
Meine Fragen:
  1. Hat jemand ein Idee, wie man vielleicht die eine oder andere der oben beschriebenen "OpenOffice-Lücken" umgehen könnte?
  2. Was sollte man - in Hinblick auf LibreOffice - unbedingt vermeiden, um OOBasic-Skripte zukunftsfähig zu erhalten?
  3. Was ist unter OOBase der Unterschied zwischen "Document", "Drawpage", "Frame" und "Form"?
  4. In diversen Threads habe ich teils heftige Diskussionen über die Benutzung von "ThisComponent" verfolgt. Was ist denn nun zu empfehlen?
  5. Wieso ist es möglich/was macht's für einen Sinn, in einem einzigen Formular mehrere "Form"-Objekte zu haben und dort getrennt Steuerelemente unterzubringen?
  6. Welche der nachfolgend aufgezählten Methoden ist zu vorzuziehen bzw. durch bessere zu ersetzen?
[/b]
An dieser Stelle bereits vielen Dank für Eure Geduld, mein BlaBla zu ertragen. Ich hoffe, ich habe mich verständlich ausgedrückt ...

Gruße aus Dresden: ejomi
Zuletzt geändert von ejomi am Fr, 09.09.2011 13:33, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Welches Objekt-Modell für BASE-Fomulare?

Beitrag von komma4 »

Auf einen langen Text mit vielen Fragen nur ein paar kurze Anmerkungen


Meines Wissen gibt es keine Vorbehalte bei LO ein com.sun.star zu benutzen. Deine Fehler müssen andersweitig zu suchen sein 8)

Extremes Beispiel sind die unzähligen Möglichkeiten, um ein Formular zu öffnen.
1. nur bei einer geöffneten ODB
2. und 3. zwei unterschiedliche Wege... und?

Da gehts dann plötzlich nur noch über einen geheimnisvollen "Dispatcher"
Irrtum, geht auch anders

(gestern schon gepostet):

Code: Alles auswählen

sub hideAll()
ThisComponent.CurrentController.Frame.LayoutManager.setVisible(False)
end sub
oder einzeln:

Code: Alles auswählen

oFrame = ThisComponent.CurrentController.Frame
layout = oFrame.LayoutManager
sUrl = "private:resource/toolbar/formsnavigationbar"
hide_LayoutElement( layout, sURL )

sUrl = "private:resource/toolbar/standardbar"
hide_LayoutElement( layout, sURL )

sUrl = "private:resource/menubar/menubar"
hide_LayoutElement( layout, sURL )

sUrl = "private:resource/statusbar/statusbar"
hide_LayoutElement( layout, sURL )
mit der Funktion

Code: Alles auswählen

Sub hide_LayoutElement( layout, sURL )
If layout.IsElementVisible(sUrl) Then
	layout.hideElement(sUrl)
Else
	layout.showElement(sUrl)
Endif
End Sub
Außerdem will LibreOffice ja ganz ohne JAVA auskommen um damit dem Anspruch der Plattformunabhängigkeit gerecht zu werden - Gott sei Dank! Der aktuelle PostgreSQL-Treiber für OpenOffice funktioniert auch nur noch bis Version 3.2.
1. wie soll LO ohne Java mit der eingebauten HSQLDB kommunizieren?
2. Ich verbinde zu MySQL und PostgreSQL über JDBC - geht nicht ohne Java
2. OOo 3.2.1 und LO 3.3.1 bzw. 3.4.3 arbeiten mit genanntem JDBC zusammen - kein Problem. EInen "native PostgreSQL"-Treiber kenne ich nicht.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ejomi
***
Beiträge: 84
Registriert: Mi, 06.09.2006 15:20

Re: [Gelöst] Welches Objekt-Modell für BASE-Fomulare?

Beitrag von ejomi »

Hallo, liebe entnervte Leser meiner Zeilen:

Ich gebe zu, das ich von VBA sehr verwöhnt (und offenbar mittlerweile völlig verblödet) bin, andererseits die mir bisher bekannten Dokumentationen von OpenOffice/OpenOffice Wiki eher rudimentär sind. Auch die 40,- Euro teure Schwarte "Datenbanken mit OpenOffice" von Thomas Krumbein zeigt nur Programmier-Ansätze und von den fast 600 Seiten bestehen ca. 2/3 aus großformatigen Screenshots zur Entwicklung einer (für mich völlig uninteressantetn) Muster-Datenbank.

Ach, ich Riesen-Rindvieh: Wahrscheinlich schon seit Jahren übersehe ich das 1. Thema dieses Forums "Informationen zur StarBasic-Programmierung" 18&t=1553#p5832 von "Stephan"!
Dort steht nämlich schon alles, was man braucht (ich setze nachfolgend noch einmal die direkten Links, falls es andere auch übersehen haben sollten):
StarBasic Programmierhandbuch in Deutsch (als PDF-Datei zum Download bei ORACLE): 819-1326/819-1326.pdf
Developersguide (Wiki von openoffice.org): OpenOffice.org_Developers_Guide

Hier noch einige Ergänzungen von mir:

Wem OpenOffice noch völlig unbekannt ist, kann sich bei ORACLE erst mal über die dortigen StarOffice-Beschreibungen einen groben Überblick über die Möglichkeiten von "Writer", "Calc", "Impress" und "Draw" verschaffen (die dort veröffentlichten Installations-Anleitung gelten natürlich nicht für OpenOffice): 819-1336.pdf

Wer tiefer in die Programmierung eintauchen will, dem könnten vielleicht noch folgende Links nützlich sein:
StarOffice 8 Administration Guide: 817-7496.pdf
StarOffice 8 Developer's Guide: 819-1304.pdf
StarOffice 8 Server - PDF Converter: 819-7317.pdf

Soo - wirklich peinlich für mich, dass ich Stephans Hinweise bisher völlig übersehen habe (und ich besuche dieses Forum bereits schon seit Jahren).
Ich habe meinen Thread als "gelöst" markiert und größtenteils zusammengestrichen - es sei denn, jemand hat noch einen Tipp für micht, betreffend der von mir dargestellten "OO-Lücken".

Nun fange ich aber erst mal an zu lesen ...

Gruß an Alle: ejomi
Antworten