Aller au contenu principal
Version : 21

List Box Object

List box de type tableau

Dans une list box de type tableau, chaque colonne est associée à un tableau 4D à une dimension ; tous les types de tableaux peuvent être utilisés, à l’exception des tableaux de pointeurs. Le nombre de lignes est basé sur le nombre d’éléments du tableau.

Par défaut, 4D affecte le nom "ColonneN" à chaque variable de colonne. You can change it, as well as other column properties, in the column properties. Le format d'affichage de chaque colonne peut également être défini à l'aide de la commande OBJECT SET FORMAT.

Les list box basées sur des tableaux peuvent être affichées sous forme de list box hiérarchiques, disposant de mécanismes spécifiques.

Avec les list box de type tableau, les valeurs des colonnes (saisie et affichage) sont gérées à l’aide des commandes du langage 4D. Vous pouvez également associer une énumération à une colonne afin de contrôler la saisie. Les valeurs des colonnes sont gérées à l'aide de commandes List box de haut niveau (telles que LISTBOX INSERT ROWS ou LISTBOX DELETE ROWS) ainsi que de commandes de manipulation de tableaux. The values of columns are managed using high-level List box commands (such as LISTBOX INSERT ROWS or LISTBOX DELETE ROWS) as well as array manipulation commands.

ARRAY TEXT(varCol;size)

Vous pouvez également utiliser une énumération :

LIST TO ARRAY("ListName";varCol)

Attention : Lorsqu’un objet List box contient plusieurs colonnes de tailles différentes, seul le nombre d’éléments correspondant au plus petit tableau est affiché. Il est donc conseillé de veiller à ce que chaque tableau ait le même nombre d’éléments que les autres. A noter également que si une colonne de la list box est "vide" (c'est le cas lorsque le tableau associé n'a pas été correctement déclaré ou dimensionné via le langage), la list box n'affiche aucun contenu.

List box de type sélection

Dans ce type de list box, chaque colonne peut être associée à un champ (par exemple [Employees]LastName) ou à une expression. L’expression peut être basée sur un ou plusieurs champs (par exemple [Employés]Nom+" "+[Employés]Prénom) ou être simplement une formule (par exempleString(Milliseconds)). L’expression peut également être une méthode projet, une variable ou un élément de tableau. Vous pouvez utiliser les commandes LISTBOX SET COLUMN FORMULA et LISTBOX INSERT COLUMN FORMULA pour modifier les colonnes par programmation.

Le contenu de chaque ligne est ensuite évalué en fonction d'une sélection d'enregistrements : la sélection courante d'une table ou une sélection temporaire.

Dans le cas d’une list box basée sur la sélection courante, toute modification effectuée côté base de données est automatiquement reportée dans la list box et inversement. La sélection courante est donc toujours identique aux deux emplacements.

List box collection ou entity selection

Dans ce type de list box, chaque colonne doit être associée à une expression. Le contenu de chaque ligne est ensuite évalué par élément de la collection ou par entité de l'entity selection.

Chaque élément de la collection ou chaque entité est disponible en tant qu'objet auquel on peut accéder via le mot-clé This. Une expression de colonne peut être un chemin de propriété, une méthode projet, une variable ou n'importe quelle formule, accédant à chaque entité ou objet élément de collection via This, par exemple This.<propertyPath> (ou This.value dans le cas d'une collection de valeurs scalaires). Vous pouvez utiliser les commandes LISTBOX SET COLUMN FORMULA et LISTBOX INSERT COLUMN FORMULA pour modifier les colonnes par programmation.

Lorsque la source de données est une entity selection, les modifications apportées du côté de la list box sont automatiquement enregistrées dans la base de données. En revanche, les modifications apportées du côté de la base de données sont visibles dans la list box après le rechargement des entités modifiées.

note

Lorsque des entités sont supprimées, leurs références restent dans l'entity selection avec une valeur undefined, ce qui entraîne l'affichage de lignes vides dans la list box. Dans ce cas, vous pouvez appeler la fonction .clean() pour obtenir une nouvelle entity selection sans les références d'entités supprimées.

Lorsque la source de données est une collection, toute modification apportée aux valeurs de la list box se reflète dans la collection. En revanche, si des modifications sont apportées à la collection en utilisant par exemple les diverses fonctions de la classe Collection, vous devrez en informer explicitement 4D en réaffectant la variable collection à elle-même, de sorte que le contenu de la list box soit actualisé. Par exemple :

myCol:=myCol.push("new value") //afficher new value dans la list box

Propriétés prises en charge

Les propriétés prises en charge dépendent du type de list box.

PropriétéList box tableauListe box sélectionList box collection ou entity selection
Couleur de fond alternée XXX
Couleur de fond XXX
Gras XXX
Expression couleur de fond XX
Style de la bordure XXX
Bas XXX
Collection ou entity selection XX
Redimensionnement colonnes auto XXX
Elément courant X
Position élément courant X
Source de données XXX
Nom formulaire détaillé X
Afficher en-têtes XXX
Afficher pieds XXX
Double-clic sur ligne X
Glissable XXX
Déposable XXX
Focusable XXX
Police XXX
Couleur de la police XXX
Expression couleur police XX
Taille XXX
Hauteur (list box) XXX
Hauteur (en-têtes) XXX
Hauteur (pieds) XXX
Masquer lignes vides finales XXX
Cacher rectangle de focus XXX
Cacher surlignage sélection XXX
List box hiérarchique X
Ensemble surlignage X
Alignement horizontal XXX
Couleur lignes horizontales XXX
Marge horizontale XXX
Barre de défilement horizontale XXX
Dimensionnement horizontal XXX
Italique XXX
Gauche XXX
Table principale X
Meta info expression X
Méthode XXX
Lignes déplaçables X
Sélection temporaire X
Nombre de colonnes XXX
Nombre de colonnes verrouillées XXX
Nombre de colonnes statiques XXX
Nom d'objet XXX
Droite XXX
Tableau couleurs de fond X
Tableau de contrôle des lignes X
Tableau couleurs de police X
Hauteur des lignes X
Tableau hauteurs des lignes X
Tableau de styles X
Eléments sélectionnés X
Mode de sélection XXX
Saisie sur clic unique XXX
Triable XXX
Action standard X
Expression Style XX
Haut XXX
Transparent XXX
Type XXX
Souligné XXX
Variable ou expression XX
Alignement vertical XXX
Couleur lignes verticales XXX
Marge verticale XXX
Barre de défilement verticale XXX
Dimensionnement vertical XXX
Visibilité XXX
Largeur XXX

Les colonnes, en-têtes et pieds de list box prennent en charge des propriétés spécifiques.

Événements de formulaire pris en charge

Evénement formulairePropriétés supplémentaires renvoyées (voir Form event pour les propriétés principales)Commentaires
On After Edit
On After Keystroke
On After SortLes formules composées ne peuvent pas être triées.
(ex : This.firstName + This.lastName)
On Alternative ClickListbox tableau uniquement
On Before Data Entry
On Before Keystroke
On Begin Drag Over
On Clicked
On Close DetailCurrent Selection & Named Selection list boxes only
On CollapseList box hiérarchiques uniquement
On Column Moved
On Column Resize
On Data Change
On Delete Action
On Display Detail
On Double Clicked
On Drag Over
On Drop
On ExpandList box hiérarchiques uniquement
On Footer ClickArrays, Current Selection & Named Selection list boxes only
On Getting FocusPropriétés supplémentaires retournées uniquement lors de la modification d'une cellule
On Header Click
On Load
On Losing FocusPropriétés supplémentaires retournées uniquement lorsque la modification d'une cellule est achevée
On Mouse Enter
On Mouse Leave
On Mouse Move
On Open DetailCurrent Selection & Named Selection list boxes only
On Row MovedListbox tableau uniquement
On Scroll
On Selection Change
On Unload
On Validate

Propriétés supplémentaires

Les événements formulaire sur les list box ou colonnes de list box peuvent retourner les propriétés supplémentaires suivantes :

PropriétéTypeDescription
areatextZone de l'objet List box ("header", "footer", "cell")
areaNametextNom de la zone
columnentier longNuméro de colonne
columnNametextNom de la colonne
footerNametextNom du pied
headerNametextNom de l'en-tête
horizontalScrollentier longPositif si le défilement est vers la droite, négatif s'il est vers la gauche
isRowSelectedbooleanVrai si la ligne est sélectionnée, sinon Faux
newPositionentier longNouvelle position de la colonne ou de la ligne
newSizeentier longNouvelle taille (en pixels) de la colonne ou de la ligne
oldPositionentier longPosition précédente de la colonne ou de la ligne
oldSizeentier longTaille précédente (en pixels) de la colonne ou de la ligne
rowentier longNuméro de ligne
verticalScrollentier longPositif si le défilement est vers le bas, négatif s'il est vers le haut

Si un événement se produit sur une "fake" colonne ou ligne qui n'existe pas, une chaîne vide est généralement renvoyée.

AltStyle によって変換されたページ (->オリジナル) /