4D v16.3

OBJET FIXER LISTE PAR REFERENCE

Accueil

 
4D v16.3
OBJET FIXER LISTE PAR REFERENCE

OBJET FIXER LISTE PAR REFERENCE 


 

OBJET FIXER LISTE PAR 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 OBJET FIXER LISTE PAR 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
Liste énumération Entier long 0 Liste simple de choix de valeurs (option "Enumération" dans la Liste des propriétés) (défaut)
Liste exclusions Entier long 2 Liste de valeurs non acceptées pour la saisie (option "Exclusions" dans la Liste des propriétés)
Liste obligations 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 Copier liste, Charger liste ou Nouvelle liste

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 SUPPRIMER LISTE 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:=Nouvelle liste
 AJOUTER A LISTE(vListCountries;"Espagne";1)
 AJOUTER A LISTE(vListCountries;"Portugal";2)
 AJOUTER A LISTE(vListCountries;"Grèce";3)
 OBJET FIXER LISTE PAR REFERENCE([Contact]Country;vListCountries)

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

 vColor:=Nouvelle liste
 AJOUTER A LISTE(vColor;"Bleu";1)
 AJOUTER A LISTE(vColor;"Vert";2)
 AJOUTER A LISTE(vColor;"Jaune";3)
 AJOUTER A LISTE(vColor;"Rose";4)
 OBJET FIXER LISTE PAR REFERENCE(*;"CoulPorte";Liste énumération;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" :

 OBJET FIXER LISTE PAR REFERENCE(*;"CoulMur";Liste énumération;vColor)
 vRejet:=Nouvelle liste
 AJOUTER A LISTE(vRejet;"Noir";1)
 AJOUTER A LISTE(vRejet;"Gris";2)
 AJOUTER A LISTE(vRejet;"Violet";3)
 OBJET FIXER LISTE PAR REFERENCE(*;"CoulMur";Liste exclusions;vRejet)

Vous souhaitez supprimer des associations de listes :

 OBJET FIXER LISTE PAR REFERENCE(*;"CoulMur";Liste énumération;0)
 OBJET FIXER LISTE PAR REFERENCE(*;"CoulMur";Liste obligations;0)
 OBJET FIXER LISTE PAR REFERENCE(*;"CoulMur";Liste exclusions;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 :

 TABLEAU TEXTE(tab1;0) //pop up tab1
 C_TEXTE(text1//pop up text1
 OBJET FIXER LISTE PAR REFERENCE(*;"tab1";<>vColor)
 OBJET FIXER LISTE PAR 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 :

 AJOUTER A LISTE(<>vColor;"Blanc";5)
 AJOUTER A LISTE(<>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 OBJET FIXER LISTE PAR REFERENCE afin de recopier le contenu de la liste.



Voir aussi  

OBJET FIXER LISTE PAR NOM
OBJET Lire liste reference

 
PROPRIÉTÉS 

Produit : 4D
Thème : Objets (Formulaires)
Numéro : 1266
Nom intl. : OBJECT SET LIST BY REFERENCE

 
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)