Vous pouvez sélectionner une colonne de list box dans l’éditeur de formulaires en cliquant dessus lorsque l’objet List box est sélectionné :
Vous pouvez définir pour chaque colonne de List box des propriétés standard (texte, couleur de fond...) : dans ce cas, ces propriétés sont prioritaires par rapport aux propriétés de l'objet List box.
Note : Vous pouvez définir le Type de variable dans le thème Objets pour les colonnes de list box de type tableau (Alpha, Texte, Numérique, Date, Heure, Image, Booléen ou Objet). L'usage de tableaux de type objet requiert une licence 4D View Pro (cf. Utiliser des tableaux objets dans les colonnes).
Vous pouvez également accéder à des propriétés spécifiques, décrites dans cette section.
Note : Le thème Source de données n'est pas disponible pour les colonnes de list box de type tableau d'objets. Dans ce contexte, le contenu de chaque cellule de la colonne est basé sur les attributs présents dans l'élément correspondant du tableau d'objets. Pour plus d'informations, reportez-vous à la section List box, Utiliser des tableaux objets dans les colonnes (4D View Pro).
Expression (list box de type sélection et collection/entity selection ) : la propriété Expression vous permet de définir l’expression 4D à associer à la colonne : Vous pouvez saisir :
une variable simple (dans ce cas, la variable doit être explicitement déclarée en vue de la compilation). Vous pouvez utiliser tout type de variable hormis les BLOBs et les tableaux. La valeur de la variable sera généralement calculée dans l’événement On display detail de la list box parente.
un champ utilisant la syntaxe standard [Table]Champ (exemple : [Employés]Nom). Les types de champs suivants sont utilisables :
Alpha et Texte
numérique
Date
Heure
Image
Booléen
Vous pouvez utiliser des champs de la table principale ou d’autres tables.
une expression 4D (expression simple, formule ou méthode 4D). L’expression doit retourner une valeur. La valeur pourra être évaluée dans l'événement On display detail de la list box parente et l'événement On data change de la colonne. Le résultat de l’expression sera automatiquement affiché lorsque vous passerez en mode Application. L’expression sera évaluée pour chaque enregistrement de la sélection courante ou temporaire de la table principale (pour les list box sélection), pour chaque élément de la collection (pour les list box de type collection) ou chaque entité de la sélection d'entités (pour les list box de type entity selection). Si la sélection d'enregistrements, d'entités ou la collection est vide, la colonne n’affichera aucun résultat. Les types d'expression suivants sont pris en charge :
Texte
Numérique
Booléen
Image
Heure
Date
Dans les list box de type collection/entity selection, les types Null ou non pris en charge sont affichés sous forme de chaîne vides.
Lorsque vous utilisez des collections ou des sélections d'entités, vous désignerez généralement la propriété d'élément ou l'attribut d'entité associé(e) à la colonne à l'aide d'une expression contenant This. This est une commande 4D dédiée qui retourne une référence vers l'élément en cours de traitement (cf. description de la commande This). Par exemple, vous pouvez utiliser This.<cheminPropriété> où <cheminPropriété> est le nom d'une propriété d'objet de la collection ou d'attribut d'entité. Si vous utilisez une collection de valeurs "scalaires", 4D créera un objet pour chaque élément de la collection, contenant une seule propriété (nommée "value"), dont la valeur est celle de chaque élément. Dans ce cas, vous utiliserez This.value comme expression.
Dans tous les cas, vous pouvez définir l’expression à l’aide de l’éditeur de formules de 4D en cliquant sur le bouton [...] dans la Liste des propriétés. Si vous passez une expression non-assignable (par exemple [Personnes]Nom+" "+[Personnes]Prénom), la colonne ne sera pas saisissable, même si l’option Saisissable est cochée. Si vous passez un champ, une variable ou une expression assignable (par exemple [Personnes]Nom) la colonne sera saisissable en fonction de l’état de l’option Saisissable. En mode Développement, le type de source de données est affiché dans la première ligne de la colonne. Par exemple, [Table1]MonChp. Si l’expression définie est incorrecte, la colonne de list box affichera un message d’erreur en mode Application.
Valeurs par défaut (list box de type tableau) : cliquez sur le bouton Edition... afin d'afficher une boîte de dialogue de saisie vous permettant d'associer une liste de valeurs par défaut pour la colonne. Ces valeurs seront automatiquement accessibles dans la variable tableau associée à la colonne lors de l’exécution du formulaire. Vous devez saisir une liste de valeurs séparées par des retours chariot puis valider la boîte de dialogue. Pour plus d'informations sur cette boîte de dialogue, reportez-vous au paragraphe Valeurs par défaut dans la section Contrôles et aides à la saisie.
Type de données (list box de type sélection) : ce menu permet de définir le type de l’expression ou de la variable associée à la colonne. Elle est utilisée pour déterminer le format d’affichage à appliquer et permet de mettre à jour le menu Type d’affichage dans le thème “Affichage”. Si un champ est saisi dans la zone Expression, la propriété Type de données n’est pas affichée, le format d’affichage correspond dans ce cas au type du champ.
Enumération : cette propriété permet d’associer une énumération à la colonne de list box. Si vous désignez une énumération, l’utilisateur pourra utiliser ses valeurs (affichées via un pop up menu) pour modifier les valeurs de la colonne et de son tableau associé : A noter que la saisie au clavier reste possible. Si vous souhaitez que les valeurs ne puissent être modifiées que via le pop up menu de sélection, choisissez une énumération obligatoire (cf. ci-dessous). Notes :
Si vous associez une énumération à une colonne numérique, vous devez utiliser le caractère point "." comme séparateur décimal dans l'énumération. Il sera automatiquement converti en séparateur décimal courant et les autres symboles (",", "$"...) seront ignorés dans le pop up menu.
Si l’énumération désignée est hiérarchique, seuls les éléments de premier niveau sont pris en compte.
Enregistrer comme Valeur/Référence : lorsque la colonne est associée à une énumération et à une énumération obligatoire, cette propriété permet de définir le type de contenu à stocker dans le champ ou la variable de la colonne. Pour plus d'informations sur cette option, reportez-vous à la section Enregistrer comme Valeur ou Référence.
Ce thème regroupe les propriétés liées à la largeur de la colonne de list box.
Largeur : largeur par défaut de la colonne (en pixels). Cette valeur est mise à jour lorsque vous redimensionnez la colonne à l’aide de la souris dans l’éditeur de formulaires. Si la propriété Redimensionnable est cochée (cf. ci-dessous), l’utilisateur pourra également redimensionner manuellement la colonne.
Hauteur de ligne automatique(*) : Lorsque cette propriété est cochée pour une colonne, la hauteur de chaque ligne est automatiquement calculée par 4D, et le contenu de la de colonne est pris en compte pour ce calcul. Cette propriété peut également être définie au niveau de la list box (pour plus d'informations, veuillez vous reporter au paragraphe Hauteur de ligne automatique dans la section Propriétés spécifiques des List box). Lorsque la fonctionnalité "Hauteur de ligne automatique" est déjà activée au niveau de la list box, désélectionner cette option pour la colonne signifie que le contenu de la colonne doit être exclu du calcul de la hauteur des lignes. (*)4D View Pro : Cette fonction nécessite une licence 4D View Pro. Pour plus d'informations, veuillez vous reporter à la section 4D View Pro.
Largeur mini : largeur minimale de la colonne (en pixels). La largeur de la colonne ne pourra pas être réduite au-dessous de cette valeur en cas de redimensionnement de la colonne ou du formulaire.
Largeur maxi : largeur maximale de la colonne (en pixels). La colonne ne pourra pas être élargie au-delà de cette valeur en cas de redimensionnement de la colonne ou du formulaire.
Note : En cas de redimensionnement du formulaire, si la propriété de redimensionnement horizontal Agrandir a été affectée à la list box, la colonne la plus à droite sera étirée au-delà de la largeur maximale si nécessaire.
Note : Dans les projets, vous pouvez définir le padding horizontal et le padding vertical d'une list box, d'une colonne, d'un en-tête ou d'un pied de page à l'aide de la liste de Propriétés (voir developer.4d.com). A noter que vous pouvez utiliser la commande LISTBOX SET PROPERTY au moment de l'exécution.
La propriété de colonne Hauteur de ligne automatique est uniquement disponible pour les list boxes avec les types de sources de données suivants :
tableau (non hiérarchique),
collection ou sélection d'entités
La propriété est décochée par défaut. Lorsque vous la cochez pour au moins une colonne, les options Hauteur de ligne min et Hauteur de ligne max sont affichées à la place des options de list box Hauteur des lignes et Tableau hauteurs de lignes (voir Thème Coordonnées et dimensions)
Lorsque cette propriété est activée pour au moins une colonne, la hauteur de chaque ligne est calculée automatiquement de sorte que le contenu des cellules tienne entièrement sans être tronqué. (sauf si l'option Retour à la ligne est désactivée). Toutes les colonnes ayant l'option cochée seront prises en compte pour calculer la hauteur de ligne.
Le calcul de la hauteur de ligne prend en compte :
tous les types de contenu (texte, numérique, dates, heures, images(*), objets),
tous les types de contrôle (entrées, cases à cocher, listes, listes déroulantes),
polices, styles de polices et tailles de polices,
l’option Retour à la ligne : si désactivée, la hauteur est basée sur le nombre de paragraphes (les lignes sont tronquées) ; si l'option est activée, la hauteur est basée sur le nombre de lignes (non tronquées).
(*) Le calcul dépend du format de l'image.
Le calcul de la hauteur de ligne ne prend pas en compte :
contenu de la colonne cachée
les propriétés Hauteur des lignes et Tableau hauteurs de lignes (le cas échéant) sont définies soit dans la liste des propriétés, soit par programmation.
Note: Comme elle nécessite des calculs supplémentaires au moment de l'exécution, l'option de Hauteur de ligne automatique pourrait affecter la fluidité du défilement de votre list box, en particulier lorsqu'elle contient un grand nombre de lignes.
Hauteur de ligne min et Hauteur de ligne max sont des propriétés supplémentaires de la list box affichées lorsque l'option Hauteur de ligne automatique est cochée pour une colonne, ce qui vous permet de définir une hauteur minimale et maximale pour les lignes. Ces valeurs peuvent être exprimées en pixels ou en lignes. La valeur de la propriété Hauteur de ligne min doit être inférieure ou égale à la valeur de la propriété Hauteur de ligne max (lorsqu'elle est définie avec la même unité).
Notes :
Les propriétés Hauteur de ligne min et Hauteur de ligne max peuvent être définies uniquement au niveau de la list box, elles ne sont pas disponibles séparément pour chaque colonne.
Ce thème comporte uniquement l’option Redimensionnable (cochée par défaut). Lorsque cette option est cochée, l’utilisateur peut redimensionner la colonne en déplaçant les parois de la zone d’en-tête
Ce thème regroupe les propriétés liées à la saisie de données dans la colonne de list box.
Saisissable : autorise la saisie dans la colonne (cochée par défaut). Pour éditer la valeur d’une cellule, l’utilisateur doit cliquer deux fois sur la valeur. Lorsque cette propriété est désélectionnée, les pop up menus éventuellement associés à la colonne via une énumération (thèmes “Source de données” et “Plage de valeurs”) sont désactivés. Note : Pour plus d'informations sur les mécanismes mis en oeuvre pour la saisie dans une list box, reportez-vous au paragraphe Gestion de la saisie dans le manuel Langage de 4D.
Filtre de saisie : associe un filtre de saisie aux cellules de la colonne. Cette propriété n’est pas accessible si la propriété Saisissable est désélectionnée.
Ce thème permet de désigner des énumérations utilisées pour le contrôle de la saisie dans la colonne de list box.
Obligation : permet de désigner une énumération dont seules les valeurs pourront être insérées dans la colonne. Les valeurs de l’énumération sont accessibles via un pop up menu associé à chaque cellule (cf. propriété “Enumération” du thème Source de données). A la différence de la propriété Enumération, lorsqu’une énumération obligatoire est définie, la saisie au clavier n’est plus possible, seule la sélection d’une valeur de l’énumération via le pop up menu est autorisée. Si des énumérations différentes sont définies via les propriétés Enumération et Obligation, la propriété Obligation a priorité.
Exclusion : permet de désigner une énumération dont les valeurs ne pourront pas être saisies dans la colonne. Si une valeur exclue est saisie, elle n’est pas acceptée et un message d’erreur est affiché.
Note : Si l’énumération désignée est hiérarchique, seuls les éléments de premier niveau sont pris en compte.
Ce thème permet de spécifier le format d’affichage des valeurs de la colonne et la propriété Invisible. Le contenu de ce thème varie en fonction du type de variable défini dans le thème "Objets".
Note : Si la list box est affichée en mode hiérarchique, toutes les propriétés de ce thème sont désactivées pour la première colonne.
Format type : permet d’associer un format d’affichage aux données de la colonne. Les formats proposés dépendent du type de variable (list box de type tableau) ou du type de données/du champ (list box de type sélection). Les formats standard de 4D sont utilisables pour les données de type Alpha, Numérique, Date, Heure, Image et Booléen (le type Texte ne dispose pas de format d’affichage spécifique). Les formats personnalisés éventuellement créés sont également disponibles.
Les colonnes de valeurs booléennes peuvent être affichées sous forme de cases à cocher ou de pop-up menus. Si vous choisissez l’option Case à cocher, la propriété Titre apparaît, vous permettant de saisir le libellé des cases à cocher. Si vous choisissez l’option Pop-up, les propriétés Texte si Vrai et Texte si Faux apparaissent, permettant de définir les deux libellés des pop-up menus.
Les colonnes de valeurs numériques peuvent être affichées sous forme de cases à cocher à trois états. Cette option est accessible via la propriété Type d’affichage. Si vous choisissez le type Cases à cocher à trois états, les valeurs affichées sont les suivantes :
0 = case non cochée,
1 = case cochée,
2 (ou toute valeur >0) = case semi-cochée (troisième état). En saisie, cet état retourne la valeur 2.
-1 = case invisible,
-2 = case non cochée, non saisissable,
-3 = case cochée, non saisissable,
-4 = case semi-cochée, non saisissable
Dans ce cas également, la propriété Titre apparaît, vous permettant de saisir le libellé des cases à cocher.
La propriété Invisible, lorsqu’elle est cochée, permet de rendre la colonne invisible dans le mode Application. En mode Développement, vous avez la possibilité d’afficher ou de masquer les colonnes déclarées invisibles à l’aide du menu contextuel associé à la list box :
Retour à la ligne (colonnes de type texte uniquement) : permet de gérer l’affichage du contenu de la colonne lorsque ce contenu dépasse la largeur de la colonne. Lorsque l’option est cochée, le texte de la colonne passe automatiquement à la ligne suivante, si la hauteur de la colonne le permet, lorsque sa largeur excède celle de la colonne. Lorsque l’option n’est pas cochée, un texte trop long est tronqué et affiche une ellipse (...). Dans l’exemple suivant, l’option Retour à la ligne est cochée pour la colonne de gauche et elle n’est pas cochée pour la colonne de droite : A noter que, quelle que soit la valeur de l’option Retour à la ligne, la hauteur des lignes n’est pas modifiée. Si le texte avec retours à la ligne ne peut être affiché en totalité dans la colonne, il est tronqué (sans ellipse). Dans le cas des list box n’affichant qu’une ligne, seule la première ligne est affichée :
Tronquer avec ellipse : permet de contrôler la représentation des valeurs lorsque la colonne est trop étroite pour afficher la totalité de son contenu. Cette option s'applique à tous les types de colonnes, hormis Image et Objet.
Lorsque l'option est cochée (défaut), si le contenu d'une cellule excède la largeur de la colonne, il est tronqué et une ellipse est affichée : Note : La position de l'ellipse dépend de l'OS. Dans l'exemple ci-dessus (Windows), elle est ajoutée à droite du texte. Sous OS X, l'ellipse est placée au centre du texte.
Lorsque l'option est désélectionnée, si le contenu d'une cellule excède la largeur de la colonne, il est simplement coupé et aucune ellipse n'est affichée :
Avec les colonnes de type Alpha ou Texte, l'option Tronquer avec ellipse est disponible uniquement lorsque l'option Retour à la ligne n'est pas cochée. Lorsque l'option Retour à la ligne est cochée, le contenu supplémentaire des cellules est géré via la fonction de retour à la ligne, l'option Tronquer avec ellipse n'est alors pas disponible.
L'option Tronquer avec ellipse peut être appliquée aux colonnes de type Booléen ; cependant, le résultat diffère en fonction du format des cellules :
pour les formats booléens de type pop-up, les libellés sont tronqués avec une ellipse,
pour les formats booléens de type case à cocher, les libellés sont toujours coupés.
Ce thème regroupe les propriétés relatives aux couleurs de fond des cellules de la colonne.
Couleur de fond : permet de définir la couleur de fond de la colonne. Par défaut, la valeur Automatique est sélectionnée : la colonne utilise la couleur de fond définie au niveau de la list box.
Couleur de fond alternée : permet de définir une couleur de fond différente pour les lignes impaires de la colonne. Par défaut, la valeur Automatique est sélectionnée : la colonne utilise la couleur de fond alternée définie au niveau de la list box.
Tableau couleurs de fond (list box de type tableau) / Expression couleur de fond (list box de type sélection/collection/entity selection) : permet d’appliquer une couleur de fond personnalisée à chaque cellule de la colonne. Vous devez utiliser des valeurs de couleurs RVB.
Pour les list box de type tableau, vous devez saisir le nom d’un tableau de type Entier long. Chaque élément de ce tableau correspondra à une cellule de la colonne, le tableau doit donc avoir la même taille que le tableau associé à la colonne. Vous pouvez utiliser les constantes du thème "FIXER COULEUR RVB". Pour qu’une cellule hérite de la couleur de fond définie au niveau supérieur (cf. paragraphe Héritage), passez la valeur -255 à l’élément du tableau correspondant.
Pour les list box de type sélection ou collection/entity selection, vous devez saisir une expression ou une variable (hormis un tableau). L’expression ou la variable sera évaluée pour chaque cellule affichée. Vous pouvez utiliser l’éditeur de formules pour définir une expression. Pour cela, cliquez sur le bouton [...] qui apparaît lorsque vous sélectionnez la zone. Vous pouvez utiliser les constantes du thème "FIXER COULEUR RVB". Note : Avec les list box de type collection ou entity selection, cette propriété peut également être définie via une expressionMeta Info (voir Thème Texte).
Tableau de styles (list box de type tableau) / Expression style (list box de type sélection ou collection/entity selection) : permet d’appliquer un style de caractères personnalisé à chaque cellule de la colonne.
Pour les list box de type tableau, vous devez saisir le nom d’un tableau de type Entier long. Chaque élément de ce tableau correspondra à une cellule de la colonne, le tableau doit donc avoir la même taille que le tableau associé à la colonne. Pour remplir le tableau (à l’aide d’une méthode), utilisez les constantes du thème "Styles de caractères". En additionnant les constantes, vous pouvez combiner les styles. Pour qu’une cellule hérite du style défini au niveau supérieur (cf. paragraphe Héritage), passez la valeur -255 à l’élément du tableau correspondant.
Pour les list box de type sélection ou collection/entity selection vous devez saisir une expression ou une variable (hormis un tableau). L’expression ou la variable sera évaluée pour chaque cellule affichée. Vous pouvez utiliser l’éditeur de formules pour définir une expression. Pour cela, cliquez sur le bouton [...] qui apparaît lorsque vous sélectionnez la zone. Vous pouvez utiliser les constantes du thème "Styles de caractères". Note : Avec les list box de type collection ou entity selection, cette propriété peut également être définie via une expressionMeta Info (voir Thème Texte).
Tableau couleurs de police (list box de type tableau) / Expression couleur police (list box de type sélection ou collection/entity selection) : permet d’appliquer une couleur de police de caractères personnalisée à chaque cellule de la colonne. Vous devez utiliser des valeurs de couleurs RVB.
Pour les list box de type tableau, vous devez saisir le nom d’un tableau de type Entier long. Chaque élément de ce tableau correspondra à une cellule de la colonne, le tableau doit donc avoir la même taille que le tableau associé à la colonne. Vous pouvez utiliser les constantes du thème "FIXER COULEUR RVB". Pour qu’une cellule hérite de la couleur de police définie au niveau supérieur (cf. paragraphe Héritage), passez la valeur -255 à l’élément du tableau correspondant.
Pour les list box de type sélection ou collection/entity selection, vous devez saisir une expression ou une variable (hormis un tableau). L’expression ou la variable sera évaluée pour chaque cellule affichée. Vous pouvez utiliser l’éditeur de formules pour définir une expression. Pour cela, cliquez sur le bouton [...] qui apparaît lorsque vous sélectionnez la zone. Vous pouvez utiliser les constantes du thème "FIXER COULEUR RVB". Note : Avec les list box de type collection ou entity selection, cette propriété peut également être définie via une expressionMeta Info (voir Thème Texte).