4D v16.3

OBJECT SET LIST BY REFERENCE

Accueil

 
4D v16.3
OBJECT SET LIST BY REFERENCE

OBJECT SET LIST BY REFERENCE 


 

OBJECT SET LIST BY REFERENCE ( {* ;} objet {; typeListe}; liste ) 
Paramètre Type   Description
Opérateur in Si spécifié, objet est un nom d'objet (chaîne) Si omis, objet est un champ ou une variable
objet  Objet de formulaire in Nom d'objet (si * est spécifié) ou Champ ou variable (si * est omis)
typeListe  Entier long in Type de liste : Liste énumération, Liste obligations ou Liste exclusions
liste  RefListe in Numéro de référence de liste

La commande OBJECT SET LIST BY REFERENCE définit ou remplace l’énumération associée à l’objet ou aux objets désigné(s) par les paramètres objet et *, avec la liste hiérarchique référencée dans le paramètre liste.

Si vous passez le paramètre optionnel *, vous indiquez que le paramètre objet est un nom d'objet (une chaîne). Si vous ne passez pas le paramètre, vous indiquez que le paramètre objet est un champ ou une variable. Dans ce cas, vous ne passez pas une chaîne mais une référence de champ ou de variable (champ ou variable objet uniquement).

Par défaut, si vous omettez le paramètre typeListe, la commande définit une énumération source (choix de valeurs) pour l’objet. Le paramètre typeListe vous permet de désigner tout type d’énumération. Pour cela, il vous suffit de passer dans ce paramètre une des constantes suivantes du thème "Objets de formulaire (Propriétés)" :

Constante Type Valeur Comment
Choice list Entier long 0 Liste simple de choix de valeurs (option "Enumération" dans la Liste des propriétés) (défaut)
Excluded list Entier long 2 Liste de valeurs non acceptées pour la saisie (option "Exclusions" dans la Liste des propriétés)
Required list Entier long 1 Liste des seules valeurs acceptées pour la saisie (option "Obligations" dans la Liste des propriétés)
 

Passez dans liste le numéro de référence de la liste hiérarchique que vous souhaitez associer à l’objet. Cette liste doit avoir été générée à l’aide de la commande Copy list, Load list ou New list

Pour mettre fin à l’association d’une liste à un objet, il suffit de passer 0 dans le paramètre liste pour le type de liste concerné. 

Supprimer une association de liste ne supprime pas la référence de liste en mémoire. N’oubliez pas d’appeler la commande CLEAR LIST lorsque vous n’avez plus besoin d’une liste. 

Cette commande est particulièrement intéressante dans le contexte d’un pop up ou d’une combo box associé(e) à une variable ou à un champ (cf. manuel Mode Développement). Dans ce cas, l’association est dynamique et toute modification dans la liste est reportée dans le formulaire. Lorsque l’objet est associé à un tableau, la liste est recopiée dans le tableau et les modifications de la liste ne seront pas automatiquement disponibles (cf. exemple 5).

Association d’une énumération simple (type de liste par défaut) à un champ texte :

 vListCountries:=New list
 APPEND TO LIST(vListCountries;"Espagne";1)
 APPEND TO LIST(vListCountries;"Portugal";2)
 APPEND TO LIST(vListCountries;"Grèce";3)
 OBJECT SET LIST BY REFERENCE([Contact]Country;vListCountries)

Associer la liste "vColor" en tant qu’énumération simple au pop up/Liste déroulante "CoulPorte" :

 vColor:=New list
 APPEND TO LIST(vColor;"Bleu";1)
 APPEND TO LIST(vColor;"Vert";2)
 APPEND TO LIST(vColor;"Jaune";3)
 APPEND TO LIST(vColor;"Rose";4)
 OBJECT SET LIST BY REFERENCE(*;"CoulPorte";Choice list;vColor)

Vous souhaitez maintenant associer la liste "vColor" à une combo box "CoulMur". Comme la combo box est saisissable, vous souhaitez que certaines couleurs telles que "noir", "violet"... ne puissent pas être utilisées. Ces couleurs sont placées dans la liste "vRejet" :

 OBJECT SET LIST BY REFERENCE(*;"CoulMur";Choice list;vColor)
 vRejet:=New list
 APPEND TO LIST(vRejet;"Noir";1)
 APPEND TO LIST(vRejet;"Gris";2)
 APPEND TO LIST(vRejet;"Violet";3)
 OBJECT SET LIST BY REFERENCE(*;"CoulMur";Excluded list;vRejet)

Vous souhaitez supprimer des associations de listes :

 OBJECT SET LIST BY REFERENCE(*;"CoulMur";Choice list;0)
 OBJECT SET LIST BY REFERENCE(*;"CoulMur";Required list;0)
 OBJECT SET LIST BY REFERENCE(*;"CoulMur";Excluded list;0)

Cet exemple illustre la différence de fonctionnement de la commande selon qu’elle est appliquée à un pop up menu associé à un tableau texte ou à une variable texte. Dans un formulaire se trouvent deux pop up menus :

Le contenu des pop up menus est défini par la liste <>vColor (contenant des valeurs de couleurs). Le code suivant est exécuté au chargement du formulaire :

 ARRAY TEXT(tab1;0) //pop up tab1
 C_TEXT(text1//pop up text1
 OBJECT SET LIST BY REFERENCE(*;"tab1";<>vColor)
 OBJECT SET LIST BY REFERENCE(*;"text1";<>vColor)

A l’exécution, les deux menus proposent alors les mêmes valeurs :


(Montage montrant simultanément le contenu des menus)

Vous exécutez alors le code suivant, par exemple via un bouton :

 APPEND TO LIST(<>vColor;"Blanc";5)
 APPEND TO LIST(<>vColor;"Noir";6)

Seul le menu associé au champ texte est mis à jour (via la référence dynamique) :

Pour pouvoir mettre à jour la liste associée au pop up géré par tableau, il est nécessaire de rappeler la commande OBJECT SET LIST BY REFERENCE afin de recopier le contenu de la liste.



Voir aussi  

OBJECT Get list reference
OBJECT SET LIST BY NAME

 
PROPRIÉTÉS 

Produit : 4D
Thème : Objets (Formulaires)
Numéro : 1266

 
HISTORIQUE 

Créé : 4D v14

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)