Aller au contenu principal
Version : 19

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. Vous pouvez également associer une énumération à une colonne afin de contrôler la saisie. Par exemple, pour initialiser le contenu d’une colonne, vous pouvez utiliser l’instruction suivante :

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.

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éeXXX
Couleur de fondXXX
GrasXXX
Expression couleur de fondXX
Style de la bordureXXX
BasXXX
CSS ClassXXX
Collection ou entity selectionXX
Redimensionnement colonnes autoXXX
Elément courantX
Position élément courantX
Source de donnéesXXX
Nom formulaire détailléX
Afficher en-têtesXXX
Afficher piedsXXX
Double-clic sur ligneX
GlissableXXX
DéposableXXX
FocusableXXX
PoliceXXX
Couleur de la policeXXX
Expression couleur policeXX
TailleXXX
Hauteur (list box)XXX
Hauteur (en-têtes)XXX
Hauteur (pieds)XXX
Masquer lignes vides finalesXXX
Cacher rectangle de focusXXX
Cacher surlignage sélectionXXX
List box hiérarchiqueX
Ensemble surlignageX
Alignement horizontalXXX
Couleur lignes horizontalesXXX
Barre de défilement horizontaleXXX
Dimensionnement horizontalXXX
ItaliqueXXX
GaucheXXX
Table principaleX
Meta info expressionX
MéthodeXXX
Lignes déplaçablesX
Sélection temporaireX
Nombre de colonnesXXX
Nombre de colonnes verrouilléesXXX
Nombre de colonnes statiquesXXX
Nom d'objetXXX
DroiteXXX
Tableau couleurs de fondX
Tableau de contrôle des lignesX
Tableau couleurs de policeX
Hauteur des lignesX
Tableau hauteurs des lignesX
Tableau de stylesX
Eléments sélectionnésX
Mode de sélectionXXX
Saisie sur clic uniqueXXX
TriableXXX
Action standardX
Expression StyleXX
HautXXX
TransparentXXX
TypeXXX
SoulignéXXX
Variable ou expressionXX
Alignement verticalXXX
Couleur lignes verticalesXXX
Barre de défilement verticaleXXX
Dimensionnement verticalXXX
VisibilitéXXX
LargeurXXX

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

Événements formulaire pris en charge

Evénement formulairePropriétés supplémentaires retournées (voir Evénement formulaire pour les propriétés principales)Commentaires
On After Edit
  • column
  • columnName
  • row
  • On After Keystroke
  • column
  • columnName
  • row
  • On After Sort
  • column
  • columnName
  • headerName
  • Les formules composées ne peuvent pas être triées.
    (ex : This.firstName + This.lastName)
    On Alternative Click
  • column
  • columnName
  • row
  • Listbox tableau uniquement
    On Before Data Entry
  • column
  • columnName
  • row
  • On Before Keystroke
  • column
  • columnName
  • row
  • On Begin Drag Over
  • column
  • columnName
  • row
  • On Clicked
  • column
  • columnName
  • row
  • On Close Detail
  • row
  • Current Selection & Named Selection list boxes only
    On Collapse
  • column
  • columnName
  • row
  • List box hiérarchiques uniquement
    On Column Moved
  • columnName
  • newPosition
  • oldPosition
  • On Column Resize
  • column
  • columnName
  • newSize
  • oldSize
  • On Data Change
  • column
  • columnName
  • row
  • On Delete Action
  • row
  • On Display Detail
  • isRowSelected
  • row
  • On Double Clicked
  • column
  • columnName
  • row
  • On Drag Over
  • area
  • areaName
  • column
  • columnName
  • row
  • On Drop
  • column
  • columnName
  • row
  • On Expand
  • column
  • columnName
  • row
  • List box hiérarchiques uniquement
    On Footer Click
  • column
  • columnName
  • footerName
  • Arrays, Current Selection & Named Selection list boxes only
    On Getting Focus
  • column
  • columnName
  • row
  • Propriétés supplémentaires retournées uniquement lors de la modification d'une cellule
    On Header Click
  • column
  • columnName
  • headerName
  • On Load
    On Losing Focus
  • column
  • columnName
  • row
  • Propriétés supplémentaires retournées uniquement lorsque la modification d'une cellule est achevée
    On Mouse Enter
  • area
  • areaName
  • column
  • columnName
  • row
  • On Mouse Leave
    On Mouse Move
  • area
  • areaName
  • column
  • columnName
  • row
  • On Open Detail
  • row
  • Current Selection & Named Selection list boxes only
    On Row Moved
  • newPosition
  • oldPosition
  • Listbox tableau uniquement
    On Selection Change
    On Scroll
  • horizontalScroll
  • verticalScroll
  • On Unload

    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.