BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Objekteigenschaften von Formularen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
avus
Beiträge: 11
Registriert: Fr 24. Nov 2017, 12:28

Objekteigenschaften von Formularen

Beitrag von avus » Fr 24. Nov 2017, 12:42

Hallo,
wie kann die Formular-Eigenschaft "Daten" > "Inhalt" eines Unterformulars per Makro angesprochen u. verändert werden?
Folgender Hintergrund:
In einem Hautformular ist eine Lisbox.
Abhängig von dem ausgewählten Eintrag soll die Tabellenzugehörigkeit zu dem Unterformular verändert werden:
Auswahl "A" > Das Unterformular erhält als Quelle Tabelle "tbl_1".
Auswahl "B" > Das Unterformular erhält Tabelle "tbl_2" als Quelle.

Ist das möglich? Vielen Dank im Voraus für entsprechenden Beispiel-Code ...
Gruß
Rainer
LibreOffice 6.3, Ubuntu 18.04, Win7 64 bit, Win10

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: Objekteigenschaften von Formularen

Beitrag von gogo » Fr 24. Nov 2017, 17:45

Das ist vermutlich möglich, aber sicher nicht mit jeder Backend-Datenbank gleich, und vermutlich auch nicht mit jedem Datenbank-Treiber gleich.

Am stabilsten bekommst Du das mit einem Dialog hin ... also ohne direkte "Bindung" an die Daten ;)

Prinzipiell kannst Du in einem Formular "unbegrenzt" viele Formularobjekte haben, von denen dann jedes wieder "unbegrenzt" viele Unterformulare haben kann etc. etc.

Am übersichtlichsten stelle ich mir das so vor, dass man jeweils die Steuerelemente des Unterformulars komplett aus- oder einblendet. Indexreiter wie z.B. in einer QT-Toolbox oder einem Tab-Widget gibt's so weit ich weiß in LO leider nicht - wäre aber dringend notwendig - schon wegen der Übersichtlichkeit. Außerdem könnte man so das Formular-Objekt-System wirklich optimal einsetzen.

Wenn Du ein konkreteres Beispiel bringst, gibt's vermutlich kreativere Lösungen.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

avus
Beiträge: 11
Registriert: Fr 24. Nov 2017, 12:28

Re: Objekteigenschaften von Formularen

Beitrag von avus » Fr 24. Nov 2017, 19:44

Danke für die Info.
Es handelt sich um die interne HSQLDB.
Auf die Möglichkeit des Ein-/Ausblendens der Kontrollelemente i. d. Sub-Forms bin ich bei meiner weiteren Recherche auch gestoßen - werde das mal ausprobieren ...

Gruß
Rainer
LibreOffice 6.3, Ubuntu 18.04, Win7 64 bit, Win10

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Objekteigenschaften von Formularen

Beitrag von RobertG » Sa 25. Nov 2017, 17:05

Hallo Rainer,

vielleicht suchst Du ja noch:

Code: Alles auswählen

oForm.Command
speichert in einem String den Namen der Tabelle oder Abfrage oder auch einen kompletten SQL-Befehl.

Code: Alles auswählen

oForm.CommandType
speichert in einer Zahl (Long) die möglichen Typen:
0: Tabelle
1: Abfrage
2: SQL-Code

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

avus
Beiträge: 11
Registriert: Fr 24. Nov 2017, 12:28

Re: Objekteigenschaften von Formularen

Beitrag von avus » So 26. Nov 2017, 21:14

Hallo Robert,
ja genau. Mit diesem Ansatz müsste sich die ganze Sache deutlich vereinfachen, da es sich um acht Sub-Forms handelt.

Mit folgendem Code wird die geänderte Quelle in das Sub-Form geschrieben:

Code: Alles auswählen

Code:
Sub Data_Source

frm_Main = thisComponent.drawpage.forms.getByName("frm_Main")
subfrm = thisComponent.drawpage.forms.getByName("frm_Main").getByName("Sub_frm_OfmMuster")

thisComponent.CurrentController.FormDesignMode = true

subfrm.CommandType = "0"
subfrm.Command = "tbl_OfmMuster"

thisComponent.CurrentController.setFormDesignMode(false)
subfrm.reload()

End Sub
Allerdings werden die Daten der entsprechenden Tabellen im Tabellenkontrollfeldes des Sub-Forms nach der Änderung noch nicht angezeigt ...
Besten Dank für den Tipp.

Gruß
Rainer
LibreOffice 6.3, Ubuntu 18.04, Win7 64 bit, Win10

avus
Beiträge: 11
Registriert: Fr 24. Nov 2017, 12:28

Re: Objekteigenschaften von Formularen

Beitrag von avus » Mo 27. Nov 2017, 12:10

Hallo,
es funktioniert nun mit o. a. Code
(es gab noch eine falsche Feldzuordnung im Sub-Form).

Gruß
Rainer
LibreOffice 6.3, Ubuntu 18.04, Win7 64 bit, Win10

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten