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. 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. 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.

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
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
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 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.

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