Aller au contenu principal
Version: Next

LISTBOX INSERT COLUMN FORMULA

LISTBOX INSERT COLUMN FORMULA ( {* ;} objet ; positionCol ; nomCol ; formule ; typeDonnées ; nomEnTête ; variableEntête {; nomPied ; variablePied} )

ParamètreTypeDescription
*OpérateurSi spécifié, objet est un nom d’objet (chaîne) Si omis, objet est une variable
objetanyNom d’objet (si * est spécifié) ou Variable (si * est omis)
positionColIntegerEmplacement de la colonne à insérer
nomColTextNom d’objet de la colonne
formuleTextFormule 4D associée à la colonne
typeDonnéesIntegerType de résultat de la formule
nomEnTêteTextNom d'objet de l'en-tête de la colonne
variableEntêteInteger, PointerVariable d'en-tête de la colonne
nomPiedTextNom d’objet du pied de la colonne
variablePiedVariable, PointerVariable du pied de la colonne

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande LISTBOX INSERT COLUMN FORMULA insère une colonne dans la list box désignée par les paramètres objet et * .
La commande LISTBOX INSERT COLUMN FORMULA est semblable à la commande LISTBOX INSERT COLUMN, à la différence près qu’elle permet la saisie d’une formule comme contenu de la colonne.
Ce type de contenu ne peut être utilisé que lorsque la propriété “Source de données” de la list box est Sélection courante, Sélection temporaire ou Collection ou entity selection (pour plus d'informations sur ce point, reportez-vous à la section Gestion programmée des objets de type List box).

Note : Cette commande ne fait rien si elle est appliquée à la première colonne d’une list box affichée en mode hiérarchique.

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 ce paramètre, vous indiquez que le paramètre objet est une variable. Dans ce cas, vous ne passez pas une chaîne mais une référence de variable. Pour plus d'informations sur les noms d’objets, reportez-vous à la section Objets de formulaires.

La nouvelle colonne est insérée juste avant la colonne désignée par le paramètre positionCol. Si le paramètre positionCol est supérieur au nombre total de colonnes, la colonne est ajoutée après la dernière colonne.

Passez dans le paramètre nomCol le nom d’objet de la colonne insérée.

Le paramètre formule peut contenir toute expression valide, soit :

  • une instruction,
  • une formule générée à l’aide de l’éditeur de formules,
  • un appel à une commande 4D,
  • un appel à une méthode projet.

Au moment de l’appel de la commande, la formule est analysée puis exécutée.

Note : Utilisez la commande Command name afin de définir des formules indépendantes de la langue de l’application (lorsqu’elles font appel à des commandes 4D).

Le paramètre typeDonnées permet de désigner le type des données issues de l’exécution de la formule. Vous devez passer dans ce paramètre une des constantes du thème Types champs et variables suivantes :

ConstanteTypeValeur
Is BooleanEntier long6
Is dateEntier long4
Is pictureEntier long3
Is realEntier long1
Is textEntier long2
Is timeEntier long11

Si le résultat de la formule ne correspond pas au type de données attendu, une erreur est générée.

Passez dans les paramètres nomEntête et variableEntête le nom d’objet et la variable de l’en-tête de la colonne insérée.

Vous pouvez également passer dans les paramètres nomPied et variablePied le nom d’objet et la variable du pied de la colonne insérée. Si vous omettez le paramètre variablePied, 4D utilisera une variable dynamique.

Note : Les noms d’objets doivent être uniques dans un formulaire. Vous devez veiller à ce que les noms passés dans les paramètres nomCol, nomEntête et nomPied ne soient pas déjà utilisés. Sinon, la colonne n’est pas créée et une erreur est générée.

Insertion dynamique

A compter de 4D v14 R3, vous pouvez utiliser cette commande pour insérer dynamiquement des colonnes dans les list box à l'exécution du formulaire, 4D prenant automatiquement en charge les définitions de variables nécessaires (pied et en-tête).

Pour cela, LISTBOX INSERT COLUMN FORMULA accepte un pointeur Nil (->[]) comme valeur pour les paramètres variableEntête et variablePied. Dans ce cas, 4D va créer dynamiquement les variables requises lors de l'exécution de la commande (pour plus d'informations, reportez-vous à la section ).

A noter que les variables d'en-tête et de pied sont toujours créées avec un type spécifique (respectivement entier long et texte).

Exemple 1

Nous souhaitons ajouter une nouvelle colonne à la droite de la list box qui contiendra une formule calculant l’âge de l’employé :

 vAge:="Date du jour-[Employés]DateNaissance)\365"
 $der:=LISTBOX Get number of columns(*;"ListBox1")+1
 LISTBOX INSERT COLUMN FORMULA(*;"ListBox1";$der;"ColFormule";vAge;Is real;"Age";VarEntete)

Exemple 2

Vous voulez ajouter une colonne à une list box de type collection :

  //Créer la collection
 var emps : Collection
 emps:=New collection(New object("Employee";"John Doe";"JobTitle";"CEO");New object("Employee";"Mary Smith";"JobTitle";"CTO");New object("Employee";"Jane Turner";"JobTitle";"CFO"))

Le contenu de la colonne sera évalué pour chaque élément de la collection et l'expression source This.Employee est utilisée :

A l'exécution :

Pour ajouter une colonne affichant les titres des postes occupés :

 LISTBOX INSERT COLUMN FORMULA(*;"EmpLB";2;"2nd Column";"This.JobTitle";Is text;"JTHeader";header2)
 OBJECT SET TITLE(header2;"Title")

La colonne est ajoutée à la list box :

Voir aussi

LISTBOX INSERT COLUMN