Hallo Robert,
vielen Dank für die Hinweise.

Am 15.01.20 um 15:35 schrieb Robert Großkopf:
> Hallo Thomas, Hallo Gerhard,
>
> die Struktur ohne Makros läuft nur über Hauptformular - Unterformular -
> UnterUnterformular. Ohne Listenfelder wären im Hauptformular und im
> Unterformular nur Tabellenkontrollfelder, die die beschriebenen Orte und
> Räume enthielten. Deren eingestellter Inhalt wird dann in das
> Unter-Unterformular übernommen.
>
> Diese Tabellenkontrollfelder brauchen ja keine Neueingabe von Daten zu
> enthalten, da vermutlich die Räume bereits feststehen. Sonst gäbe es ja
> auch mit Listenfeldern Probleme.

Ja, Orte und Räume sind schon in separaten Tabellen vorhanden. Die
Ortseingabe funktioniert und es geht um die Raumeingabe, wobei eben nur
die passenden Räume angeboten werden sollen. Ich denke, mit Unter- und
UnterUnterformular könnte es gehen und werde das zuerst probieren.

Danke

Thomas

>
> Dann ist noch die Möglichkeit, das Hauptformular als Filterformular mit
> einem Listenfeld zu versehen. Ohne Makro braucht es hier aber schon
> einen Button zusätzlich, der dann dafür sorgt, dass der Inhalt
> weitergegeben wird.
>
> Im Handbuch steht im Kapitel "Makros" bei den Eigenschaften für
> Listenfelder dieses Makro:
>
> ---------------
> SUB Listenfeldfilter
> DIM stSql(0) AS STRING
> DIM oDoc AS OBJECT
> DIM oDrawpage AS OBJECT
> DIM oForm AS OBJECT
> DIM oFeld AS OBJECT
> oDoc = thisComponent
> oDrawpage = oDoc.drawpage
> oForm = oDrawpage.forms.getByName("MainForm")
> oFeld = oForm.getByname("Listenfeld")
> stSql(0) = "SELECT ""Name"", ""ID"" FROM ""Filter_Name"" ORDER BY ""Name"""
> oFeld.ListSource = stSql
> oFeld.refresh
> END SUB
> -----------
> Sobald also der Ort vorgegeben wurde müsste der Code für das Listenfeld
> entsprechend unter stSql(0) eingetragen werden. Also, wie in gerhards
> Beispiel,
> "SELECT ""Raum"", ""ID_Raum"" FROM ""Räume"" WHERE ""ID_Ort"" = '1'
> ORDER BY ""Raum"""
> Die '1' für die ID_Ort muss dann aus dem Feld für den Ort gelesen
> werden. Das geht dann auch in Kurzform, wenn beide Listenfelder im
> gleichen Formular liegen:
> ---------------
> SUB Listenfeldfilter(oEvent AS OBJECT)
> DIM stSql(0) AS STRING
> DIM oForm AS OBJECT
> DIM oFeld AS OBJECT
> DIM oStartFeld AS OBJECT
> oFeldStart = oEvent.Source.Model
> inIDOrt = oFeldStart.CurrentValue
> oForm = oFeldStart.Parent
> oFeld = oForm.getByname("Listenfeld")
> stSql(0) = "SELECT ""Raum"", ""ID_Raum"" FROM ""Räume"" WHERE ""ID_Ort""
> = '"+inIDOrt+"' ORDER BY ""Raum"""
> oFeld.ListSource = stSql
> oFeld.refresh
> END SUB
> -----------
>
> Gruß
>
> Robert



-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an