Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
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.

Vorhandene Werteliste wird ersetzt, je nachdem, wie die Liste mit dem Formularobjekt verknüpft ist:

  • mit einer Auswahlliste: die Liste selbst wird ersetzt.
  • mit einem Array: die Liste wird in Array-Elemente kopiert.  
  • über ein Objekt (wird in binären Datenbanken nicht unterstützt): die Liste wird als Collection-Elemente in die Values-Eigenschaft des Objekts kopiert

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.



Siehe auch 

OBJECT Get list reference
OBJECT SET LIST BY NAME

 
EIGENSCHAFTEN 

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

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v14

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)