4D v16.3

OBJECT SET LIST BY REFERENCE

Home

 
4D v16.3
OBJECT SET LIST BY REFERENCE

OBJECT SET LIST BY REFERENCE 


 

OBJECT SET LIST BY REFERENCE ( {* ;} Objekt {; ListeTyp}; Liste ) 
Parameter Typ   Beschreibung
Operator in Mit Stern: Objekt ist Objektname (String)
Ohne Stern: Objekt ist Feld oder Variable
Objekt  Formularobjekt in Objektname (mit *) oder Feld bzw. Variable (ohne *)
ListeTyp  Lange Ganzzahl in Typ der Liste: Auswahlliste, Erforderlich-Liste oder Ausgenommen-Liste
Liste  ListRef in 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.
Dieser Befehl ist besonders bei PopUp-Menüs oder Comboboxen interessant, die einer Variable oder einem Feld zugeordnet sind (siehe Handbuch 4D Designmodus). Hier ist die Zuweisung dynamisch und jede Änderung in der Liste wird in das Formular kopiert. Ist das Objekt einem Array zugewiesen, wird die Liste in das Array kopiert und Änderungen in 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.



Siehe auch 

OBJECT Get list reference
OBJECT SET LIST BY NAME

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Objekte (Formulare)
Nummer: 1266

 
GESCHICHTE 

Erstellt: 4D v14

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)