Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
OBJECT SET LIST BY REFERENCE
|
OBJECT SET LIST BY REFERENCE ( {* ;} Objekt {; ListeTyp}; Liste ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
* | Operator |
![]() |
Mit Stern: Objekt ist Objektname (String) Ohne Stern: Objekt ist Feld oder Variable |
|||||
Objekt | Formularobjekt |
![]() |
Objektname (mit *) oder Feld bzw. Variable (ohne *) | |||||
ListeTyp | Lange Ganzzahl |
![]() |
Typ der Liste: Auswahlliste, Erforderlich-Liste oder Ausgenommen-Liste | |||||
Liste | ListRef |
![]() |
Referenznummer der Liste | |||||
Der Befehl OBJECT SET LIST BY REFERENCE definiert oder ersetzt die Liste für das bzw. die Objekte, definiert durch die Parameter Objekt und *, mit der hierarchischen Liste, die im Parameter Liste angegeben ist.
Mit dem optionalen Parameter * geben Sie an, dass der Parameter Objekt ein Objektname (String) ist. Ohne diesen Parameter ist Objekt ein Feld oder eine Variable. In diesem Fall übergeben Sie eine Feld- oder Variablenreferenz anstelle eines String (nur Feld oder Variablenobjekt).
Standardmäßig, d.h. ohne den Parameter ListeTyp, definiert der Befehl für das Objekt als Ursprung eine Auswahlliste (Werte zum Auswählen). Im Parameter ListeTyp bestimmen Sie einen Listentyp. Dazu übergeben Sie eine der folgenden Konstanten unter dem Thema Formularobjekte (Eigenschaften):
Konstante | Typ | Wert | Kommentar |
Choice list | Lange Ganzzahl | 0 | Liste zum Auswählen von Werten (Option "Auswahlliste" in der Eigenschaftenliste) (Standard) |
Excluded list | Lange Ganzzahl | 2 | Liste mit ausgeschlossenen Werten für die Eingabe (Option "Ausgenommen-Liste" in der Eigenschaftenliste) |
Required list | Lange Ganzzahl | 1 | Liste mit erforderlichen Werten für die Eingabe (Option "Erforderlich-Liste" in der Eigenschaftenliste) |
In Liste übergeben Sie die Referenznummer der hierarchischen Liste, die Sie dem Objekt zuordnen wollen. Diese Liste muss über die Funktion Copy list, Load list oder New list erstellt worden sein.
Wollen Sie die Zuordnung der Liste zu Objekt beenden, übergeben Sie im Parameter Liste für den betreffenden Listentyp einfach den Wert 0. Entfernen der Zuordnung löscht nicht die Listenreferenz im Speicher. Denken Sie daran, CLEAR LIST aufzurufen, wenn Sie die Liste nicht mehr benötigen.
Vorhandene Werteliste wird ersetzt, je nachdem, wie die Liste mit dem Formularobjekt verknüpft ist:
Dieser Befehl ist besonders interessant im Zusammenhang mit Dropdown oder Combobox, die mit einer Variablen oder einem Feld verknüpft ist. In diesem Fall ist die Verknüpfung dynamisch und jede Änderung in der Liste wird in das Formular kopiert. Wenn das Objekt mit einem Array oder einem Objekt verknüpft ist, wird die Liste in das Array oder das Objekt kopiert und Änderungen an der Liste sind nicht automatisch verfügbar (siehe Beispiel 5).
Einem Feld vom Typ Text eine einfache Auswahlliste zuweisen (standardmäßiger Listentyp):
vCountriesList:=New list
APPEND TO LIST(vCountriesList;"Spanien";1)
APPEND TO LIST(vCountriesList;"Portugal";2)
APPEND TO LIST(vCountriesList;"Griechenland";3)
OBJECT SET LIST BY REFERENCE([Contact]Country;vCountriesList)
Die Liste "vColor" als einfache Auswahlliste mit der PopUp/DropDown Liste "Türfarbe" zuweisen:
vColor:=New list
APPEND TO LIST(vColor;"Blau";1)
APPEND TO LIST(vColor;"Grün";2)
APPEND TO LIST(vColor;"Rot";3)
APPEND TO LIST(vColor;"Gelb";4)
OBJECT SET LIST BY REFERENCE(*;"Türfarbe";Choice list;vColor)
Jetzt wollen Sie die Liste "vColor" der Combobox mit Namen "Wandfarbe" zuordnen. Da sich in die Combobox Werte eingeben lassen, möchten Sie sichergehen, dass bestimmte Farben wie "schwarz," "purpur," etc., ausgeschlossen sind.
Diese Farben werden in die Liste "vReject" gesetzt:
OBJECT SET LIST BY REFERENCE(*;"Wandfarbe";Choice list;vColor)
vReject:=New list
APPEND TO LIST(vReject;"schwarz";1)
APPEND TO LIST(vReject;"grau";2)
APPEND TO LIST(vReject;"purpur";3)
OBJECT SET LIST BY REFERENCE(*;"Wandfarbe";Excluded list;vReject)
Sie wollen die Listenzuweisungen entfernen:
OBJECT SET LIST BY REFERENCE(*;"Wandfarbe";Choice list;0)
OBJECT SET LIST BY REFERENCE(*;"Wandfarbe";Required list;0)
OBJECT SET LIST BY REFERENCE(*;"Wandfarbe";Excluded list;0)
ieses Beispiel zeigt die unterschiedliche Arbeitsweise des Befehls für ein PopUp-Menü, das einem Array Text oder einer Textvariablen zugewiesen ist. Hier die beiden PopUp-Menüs im Formular
Der Inhalt dieser PopUp-Menüs wird über die Liste <>vColor gesetzt, die Farbwerte enthält. Beim Laden des Formulars wird folgender Code ausgeführt:
ARRAY TEXT(arr1;0) //arr1 pop up
C_TEXT(text1) //text1 pop up
OBJECT SET LIST BY REFERENCE(*;"arr1";<>vColor)
OBJECT SET LIST BY REFERENCE(*;"text1";<>vColor)
Während der Ausführung bieten beide Menüs dieselben Werte an:
(Diese Ansicht zeigt den Inhalt beider Menüs gleichzeitig an)
Dann führen Sie folgenden Code aus, z.B. über eine Schaltfläche:
APPEND TO LIST(<>vColor;"White";5)
APPEND TO LIST(<>vColor;"Black";6)
Als Ergebnis sehen Sie, dass über die dynamische Referenz nur das Menü aktualisiert wird, das dem Textfeld zugeordnet ist
Die Liste, die dem PopUp-Menü per Array zugewiesen wird, wird aktualisiert, wenn Sie erneut den Befehl OBJECT SET LIST BY REFERENCE aufrufen und den Inhalt der Liste kopieren.
Produkt: 4D
Thema: Objekte (Formulare)
Nummer:
1266
Erstellt: 4D v14
4D Programmiersprache ( 4D v20 R7)