Aller au contenu principal
Version: 20 R8

Objets


Type

PARAMETRAGE OBLIGATOIRE

Cette propriété désigne le type objet de formulaire actif ou inactif.

Grammaire JSON

NomType de donnéesValeurs possibles
typestring"button", "buttonGrid", "checkbox", "combo", "dropdown", "groupBox", "input", "line", "list", "listbox", "oval", "picture", "pictureButton", "picturePopup", "plugin", "progress", "radio", "rectangle", "ruler", "spinner", "splitter", "stepper", "subform", "tab", "text", "view", "webArea", "write"

Objets pris en charge

4D View Pro area - 4D Write Pro area - Button - Button Grid - Check Box - Combo Box - Drop-down List - Group Box - Hierarchical List - List Box - List Box Column - List Box Footer - List Box Header - Picture Button - Picture Pop-up Menu - Plug-in Area - Progress indicator - Radio Button -Spinner - Splitter - Static Picture - Stepper - Subform - Tab control - Text Area - Web Area


Nom d'objet

Chaque objet de formulaire actif est associé à un nom d'objet. Chaque nom d'objet doit être unique.

Les noms d'objets sont limités à une taille de 255 octets.

When using 4D’s language, you can refer to an active form object by its object name (see Object (Forms) commands).

For more information about naming rules for form objects, refer to Identifiers section.

Grammaire JSON

NomType de donnéesValeurs possibles
namestringTout nom autorisé qui n'appartient pas à un objet déjà existant

Objets pris en charge

4D View Pro area - 4D Write Pro area - Button - Button Grid - Check Box - Combo Box - Drop-down List - Group Box - Hierarchical List - List Box - List Box Column - List Box Footer - List Box Header - Picture Button - Picture Pop-up Menu - Plug-in Area - Progress indicator - Spinner - Splitter - Static Picture - Stepper - Radio Button - Subform - Tab control - Text Area - Web Area


Mémoriser valeur

This property is available when the Save Geometry option is checked for the form.

Cette fonction n'est disponible que pour les objets qui contribuent à la géométrie globale du formulaire. Par exemple, cette option est disponible pour les cases à cocher car leur valeur peut être utilisée pour masquer ou afficher des zones supplémentaires dans la fenêtre.

Voici la liste des objets dont la valeur peut être mémorisée :

ObjectValeur mémorisée
Check BoxValeur de la variable associée (0, 1, 2)
Drop-down ListNuméro de la ligne sélectionnée
Radio ButtonValeur de la variable associée (1, 0, True ou False pour les boutons selon leur type)
Tab controlNuméro de l'onglet sélectionné

Grammaire JSON

NomType de donnéesValeurs possibles
memorizeValuebooleantrue, false

Objets pris en charge

Check Box - Drop-down List - Radio Button - Tab control


Variable ou expression

Voir également Expression pour les colonnes de list box de type sélection et collection.

Cette propriété spécifie la source des données. Chaque objet de formulaire actif est associé à un nom d'objet et à un nom de variable. Le nom de la variable peut être différent du nom de l'objet. Dans un même formulaire, vous pouvez utiliser plusieurs fois la même variable alors que chaque nom d'objet doit être unique.

La taille du nom de la variable est limitée à 31 octets. Voir la section Identifiants pour plus d'informations sur les règles de nommage.

Les variables d'objet de formulaire vous permettent de contrôler et de piloter les objets. Par exemple, lorsqu'un bouton est cliqué, sa variable est fixée à 1 ; à tout autre moment, elle est fixée à 0. L'expression associée à un indicateur de progression permet de lire et de modifier le réglage en cours.

Les variables ou expressions peuvent être saisissables ou non saisissables et peuvent recevoir des données de type Texte, Entier, Reél, Date, Heure, Image, Booléen ou Objet.

Grammaire JSON

NomType de donnéesValeurs possibles
dataSourcetexte, ou tableau de textes
  • variable, nom de champ, ou toute expression 4D.
  • Chaîne vide pour variables dynamiques.
  • Tableau de chaînes (collection de noms de tableau) pour une colonne de listbox hiérarchique
  • Expressions

    Vous pouvez utiliser une expression comme source de données pour un objet. Toute expression 4D valide est autorisée : expression simple, propriété d'objet, formule, fonction 4D, nom de méthode projet ou champ utilisant la syntaxe standard [Table]Field. L'expression est évaluée lors de l'exécution du formulaire et réévaluée à chaque événement du formulaire. Notez que les expressions peuvent être assignables ou non assignables.

    Si la valeur saisie correspond à la fois à un nom de variable et à un nom de méthode, 4D considère que vous indiquez la méthode.

    Variables dynamiques

    Vous pouvez laisser à 4D le soin de créer les variables associées à vos objets de formulaire (boutons, zones de saisie, cases à cocher, etc.) de façon dynamique et en fonction de vos besoins. Pour cela, il suffit de laisser la propriété "Variable ou expression" (ou le champ JSON dataSource) vide.

    Lorsqu'une variable n'est pas nommée, au chargement du formulaire, 4D crée une nouvelle variable pour l'objet, avec un nom calculé qui est unique dans l'espace des variables de process de l'interpréteur (ce qui signifie que ce mécanisme peut être utilisé même en mode compilé). Cette variable temporaire sera détruite à la fermeture du formulaire. Pour que ce principe fonctionne en mode compilé, il est impératif que les variables dynamiques soient explicitement typées. Il existe deux façons de procéder :

    • Vous pouvez définir le type à l'aide de la propriété Type d'expression.
    • Vous pouvez utiliser un code d'initialisation spécifique lors du chargement du formulaire qui utilise, par exemple, la commande VARIABLE TO VARIABLE :
     If(Form event code=On Load)
    var $init : Text
    $Ptr_object:=OBJECT Get pointer(Object named;"comments")
    $init:=""
    VARIABLE TO VARIABLE(Current process;$Ptr_object->;$init)
    End if

    Dans le code 4D, les variables dynamiques sont accessibles à l'aide d'un pointeur obtenu avec la commande OBJECT Get pointer. Par exemple :

      // assigner l'heure 12:00:00 à la variable de l'objet "tstart"
    $p := OBJECT Get pointer(Object named ; "tstart")
    $p-> := ?12:00:00 ?

    Ce mécanisme présente deux avantages :

    • D'une part, il permet de développer des composants de type "sous-formulaire" qui peuvent être utilisés plusieurs fois dans le même formulaire hôte. Prenons l'exemple d'un sous-formulaire de type datepicker qui est inséré deux fois dans un formulaire hôte pour définir une date de début et une date de fin. Ce sous-formulaire utilisera des objets pour choisir le mois et l'année de la date. Il sera nécessaire que ces objets fonctionnent avec des variables différentes pour la date de début et la date de fin. Laisser 4D créer sa variable avec un nom unique est un moyen de résoudre cette difficulté.
    • D'autre part, il peut être utilisé pour limiter l'utilisation de la mémoire. En fait, les objets formulaires ne fonctionnent qu'avec des variables process ou interprocess. Cependant, en mode compilé, une instance de chaque variable process est créée dans tous les process, y compris les process serveur. Cette instance occupe de la mémoire, même si le formulaire n'est pas utilisé durant la session. Par conséquent, le fait de laisser 4D créer des variables de manière dynamique lors du chargement des formulaires permet d'économiser de la mémoire.

    List box tableau

    Pour une list box de type tableau, la propriété Variable ou Expression contient généralement le nom de la variable de type tableau définie pour la list box et pour chaque colonne. Toutefois, vous pouvez utiliser un tableau texte (contenant des noms de tableaux) comme valeur dataSource pour une colonne de list box afin de définir une listbox hiérarchique.

    Objets pris en charge

    4D View Pro area - 4D Write Pro area - Button - Button Grid - Check Box - Combo Box - Drop-down List - Hierarchical List - List Box - List Box Column - List Box Header - List Box Footer - Picture Pop-up Menu - Plug-in Area - Progress indicator - Radio Button - Spinner - Splitter - Stepper - Subform - Tab control - Web Area


    Type d’expression

    Cette propriété est appelée Type de données dans la liste de propriétés pour les colonnes de list box de type sélection et collection et pour les Listes déroulantes associées à un objet ou un tableau.

    Spécifie le type de données pour l'expression ou la variable associée à l'objet. Notez que l'objectif principal de ce paramètre est de configurer les options (telles que les formats d'affichage) disponibles pour le type de données. Il ne type pas la variable elle-même. En vue d'une compilation de projet, vous devez déclarer la variable.

    Toutefois, cette propriété a une fonction de typage dans les cas spécifiques suivants :

    • Variables dynamiques : vous pouvez utiliser cette propriété pour déclarer le type des variables dynamiques.
    • Colonnes de list box : cette propriété est utilisée pour associer un format d'affichage aux données de la colonne. Les formats fournis dépendent du type de variable (list box de type tableau) ou du type de données/de champ (list box de type sélection et collection). Les formats 4D standard qui peuvent être utilisés sont les suivants : Alpha, Numérique, Date, Heure, Image et Booléen. Le type Texte n'a pas de format d'affichage spécifique. Tous les formats personnalisés existants sont également disponibles.
    • Variables image : vous pouvez utiliser ce menu pour déclarer les variables avant de charger le formulaire en mode interprété. Des mécanismes natifs spécifiques régissent l'affichage des variables image dans les formulaires. Ces mécanismes exigent une plus grande précision dans la configuration des variables : elles doivent avoir été déclarées avant le chargement du formulaire - c'est-à-dire avant même l'événement formulaire On Load - à la différence des autres types de variables. Pour cela, il faut soit que l'instruction var varName : Picture ait été exécutée avant le chargement du formulaire (typiquement, dans la méthode appelant la commande DIALOG), soit que la variable ait été typée au niveau du formulaire en utilisant la propriété type d'expression. Sinon, la variable image ne sera pas affichée correctement (uniquement en mode interprété).

    Grammaire JSON

    NomType de donnéesValeurs possibles
    dataSourceTypeHintstring
  • Objets standards : "integer", "boolean", "number", "image", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"
  • colonnes de list box : "boolean", "number", "picture", "text", date", "time". list box tableaux/sélection uniquement : "integer", "object"
  • Objets pris en charge

    Check Box - Combo Box - Drop-down List - Input - List Box Column - List Box Footer - Plug-in Area - Progress indicator - Radio Button - Ruler - Spinner - Stepper - Subform - Tab Control


    CSS Class

    Une liste de mots séparés par des espaces utilisés comme sélecteurs de classes dans fichiers css.

    Grammaire JSON

    NomType de donnéesValeurs possibles
    classstringUne chaîne avec le(s) nom(s) CSS séparé(s) par des caractères d'espacement

    Objets pris en charge

    4D View Pro area - 4D Write Pro area - Button - Button Grid - Check Box - Combo Box - Drop-down List - Group Box - Hierarchical List - List Box - Picture Button - Picture Pop-up Menu - Plug-in Area - Radio Button - Static Picture - Subform - Text Area - Web Area


    Collection ou entity selection

    Pour utiliser des éléments de collection ou des entités afin de définir le contenu des lignes de la list box.

    Saisissez une expression qui renvoie une collection ou une entity selection. En général, vous saisissez le nom d'une variable, d'un élément de collection ou d'une propriété qui contient une collection ou une entity selection.

    La collection ou l'entity selection doit être disponible pour le formulaire lors de son chargement. Chaque élément de la collection ou de chaque entité de l'entity selection sera associé(e) à une ligne de list box et sera disponible en tant qu'objet via le mot-clé This :

    • si vous avez utilisé une collection d'objets, vous pouvez appeler This dans l'expression datasource pour accéder à chaque valeur de propriété, par exemple This.<propertyPath>.
    • si vous avez utilisé une entity selection, vous pouvez appeler This dans l'expression detasource pour accéder à chaque valeur d'attribut, par exemple This.<attributePath>.

    Si vous avez utilisé une collection de valeurs scalaires (et non des objets), 4D vous permet d'afficher chaque valeur en appelant This.value dans l'expression datasource. Cependant, dans ce cas, vous ne pourrez pas modifier les valeurs ou accéder à l'objet courant (voir ci-dessous).

    Grammaire JSON

    NomType de donnéesValeurs possibles
    dataSourcestringExpression qui renvoie une collection ou une entity selection.

    Objets pris en charge

    List Box


    Source de données

    Spécifie le type de list box.

    • Tableaux (par défaut) : utiliser des éléments de tableaux comme lignes de la list box.
    • Sélection courante : utiliser des expressions, champs ou méthodes dont les valeurs seront évaluées pour chaque enregistrement de la sélection courante d'une table.
    • Sélection temporaire : utiliser des expressions, champs ou méthodes dont les valeurs seront évaluées pour chaque enregistrement de la sélection temporaire.
    • Collection ou Entity selection : utiliser des éléments de collections ou des entités pour définir le contenu des lignes de la list box. Notez qu'avec ce type de list box vous devez définir la propriété Collection ou Entity Selection.

    Grammaire JSON

    NomType de donnéesValeurs possibles
    listboxTypestring"array", "currentSelection", "namedSelection", "collection"

    Objets pris en charge

    List Box


    Type de Plug-in

    Nom de la zone externe de plugin associée à l'objet. Les noms des zones externes de plug-in sont publiés dans le fichier manifest.json du plug-in.

    Grammaire JSON

    NomType de donnéesValeurs possibles
    pluginAreaKindstringNom de la zone externe du plug-in (commence par un caractère %)

    Objets pris en charge

    Plug-in Area


    Groupe de boutons radio

    Permet d'utiliser les boutons radio dans des ensembles coordonnés : un seul bouton à la fois peut être sélectionné dans l'ensemble.

    Grammaire JSON

    NomType de donnéesValeurs possibles
    radioGroupstringNom du groupe radio

    Objets pris en charge

    Radio Button


    Titre

    Permet d'insérer un libellé sur un objet. La police et le style de ce libellé peuvent être spécifiés.

    Vous pouvez forcer un retour chariot dans le libellé en utilisant le caractère \ (barre oblique inverse).

    Pour insérer un \ dans le libellé, entrez "\\".

    Par défaut, le libellé est placé au centre de l'objet. Lorsque l'objet contient également une icône, vous pouvez modifier l'emplacement relatif de ces deux éléments à l'aide de la propriété Position Titre/Image.

    Pour des raisons de traduction d'applications, vous pouvez entrer une référence XLIFF dans la zone de titre d'un bouton (voir Annexe B : architecture XLIFF).

    Grammaire JSON

    NomType de donnéesValeurs possibles
    textstringtout texte

    Objets pris en charge

    Button - Check Box - List Box Header - Radio Button - Text Area


    Calcul de la variable

    Cette propriété définit le type de calcul à effectuer dans une zone pied de colonne.

    Le calcul des pieds de page peut également être défini en utilisant la commande 4D LISTBOX SET FOOTER CALCULATION.

    Il existe plusieurs types de calculs. Le tableau suivant montre quels calculs peuvent être utilisés en fonction du type de données présentes dans chaque colonne et indique le type automatiquement affecté par 4D à la variable de pied de colonne (si elle n'est pas typée par le code) :

    CalculNumTextDateTimeBoolPicttype var pied de page
    MinimumXXXXXIdentique au type de colonne
    MaximumXXXXXIdentique au type de colonne
    SumXXXIdentique au type de colonne
    CountXXXXXXInteger
    AverageXXReal
    Standard deviation(*)XXReal
    Variance(*)XXReal
    Sum squares(*)XXReal
    Custom ("none")XXXXXXTous

    (*) Uniquement pour les list box de type tableau.

    Seules les variables déclarées ou dynamiques peuvent être utilisées pour afficher les calculs des pieds de listbox. Les autres types d'expressions telles que Form.sortValue ne sont pas pris en charge.

    Les calculs automatiques ne tiennent pas compte de l'état affiché/masqué des lignes de list box. Si vous souhaitez limiter un calcul aux seules lignes visibles, vous devez utiliser un calcul personnalisé.

    Les valeurs Null ne sont prises en compte pour aucun calcul.

    Si la colonne contient différents types de valeurs (colonne basée sur une collection par exemple) :

    • Les fonctions Average et Sum ne prennent en compte que les éléments numériques (les autres types d'éléments sont ignorés).
    • Minimum and Maximum return a result according to the usual type list order as defined in the collection.sort() function.

    L'utilisation de calculs automatiques dans les pieds de colonnes basées sur des expressions présente les limitations suivantes :

    • it is supported with all list box types when the expression is "simple" (such as [table]field or this.attribute),
    • it is supported but not recommended for performance reasons with collection/entity selection list boxes when the expression is "complex" (other than this.attribute) and the list box contains a large number of rows,
    • it is not supported with current selection/named selection list boxes when the expression is "complex". Vous devez utiliser des calculs personnalisés.

    When Custom ("none" in JSON) is set, no automatic calculations are performed by 4D and you must assign the value of the variable in this area by programming.

    Grammaire JSON

    NomType de donnéesValeurs possibles
    variableCalculationstring"none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare"

    Objets pris en charge

    List Box Footer