Aller au contenu principal
Version: 19

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.

Lorsque vous utilisez le langage de 4D, vous pouvez vous référer à un objet de formulaire actif par son nom d'objet (pour plus d'informations à ce sujet, voir Propriétés des objets dans le manuel de référence du langage de 4D).

Pour plus d'informations sur les règles de dénomination des objets de formulaire, voir la section Identifiants.

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

Cette propriété est disponible lorsque l'option Mémoriser géométrie est cochée pour le formulaire.

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
Case à cocherValeur de la variable associée (0, 1, 2)
Liste déroulanteNuméro de la ligne sélectionnée
Bouton radioValeur de la variable associée (1, 0, True ou False pour les boutons selon leur type)
OngletsNuméro de l'onglet sélectionné

Grammaire JSON

NomType de donnéesValeurs possibles
memorizeValuebooleantrue, false

Objets pris en charge

Case à cocher - Liste déroulante - Bouton radio - Onglets


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 Identificateurs 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 les variables dynamiques.
  • Tableau de textes (collection de noms de tableaux) 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, variables saisissables, cases à cocher, etc.) de manière dynamique et selon vos besoins. Pour ce faire, il suffit de laisser vide la propriété "Variable ou expression" (ou le champ JSON dataSource ).

    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=On Load)
    C_TEXT($init)
    $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 de textes (contenant des noms de tableaux) comme valeur dataSource pour une colonne de list box afin de définir une list box 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 - Spinner - Splitter - Stepper - Tab control - Subform - Radio Button - Web Area


    Type d’expression

    Cette propriété est intitulée Type de données dans la Liste de Propriétés pour les colonnes de listbox de type selection 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 : Cette propriété permet de 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 : Ce menu permet de 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 On Load du formulaire - contrairement aux autres types de variables. Pour cela, il faut soit que l'instruction C_PICTURE(varName) 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 à l'aide de 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 standard: "integer", "boolean", "number", "picture", "text", "date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"
  • colonnes de list box : "boolean", "number", "picture", "text", date", "time". Array/selection list box only: "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 classe dans les 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 chaque entité de l'entity selection sera associé à une ligne de la list box et sera disponible en tant qu'objet par l'intermédiaire de la fonction This :

    • si vous avez utilisé une collection d'objets, vous pouvez appeler This dans l'expression de la source de données 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 de la source de données 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) : utilise des éléments de tableaux comme lignes de list box.
    • Sélection courante : utilise des expressions, des champs ou des méthodes dont les valeurs seront évaluées pour chaque enregistrement de la sélection courante d'une table.
    • Sélection temporaire : utilise des expressions, des champs ou des méthodes dont les valeurs seront évaluées pour chaque enregistrement de la sélection temporaire.
    • Collection ou Entity selection : utilise des éléments de collection 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 du plug-in 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

    Zones de plug-in


    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

    Bouton radio


    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.

    À des fins de traduction d'application, vous pouvez saisir une référence XLIFF dans la zone de libellé d'un bouton (voir Annexe B: architecture XLIFF).

    Grammaire JSON

    NomType de donnéesValeurs possibles
    textstringtout texte

    Objets pris en charge

    Bouton - Case à cocher - En-tête de list box - Bouton radio - Zone de texte


    Calcul de la variable

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

    Le calcul des pieds peut également être défini à l'aide de 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 nulles ne sont pas prises en compte dans les calculs.

    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 et Maximum renvoient un résultat selon l'ordre habituel de la liste de types, tel que documenté dans la fonction collection.sort().

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

    • elle est prise en charge par tous les types de list box lorsque l'expression est "simple" (comme [table]field ou this.attribute),
    • elle est prise en charge mais n'est pas recommandée pour des raisons de performances avec des list box collection/entity selection lorsque l'expression est "complexe" (autre que this.attribute) et que la list box contient un grand nombre de lignes,
    • elle n'est pas prise en charge avec les listbox sélection courante/sélection temporaire lorsque l'expression est "complexe". Vous devez utiliser des calculs personnalisés.

    Lorsque l'option Custom ("none" dans JSON) est activée, aucun calcul automatique n'est effectué par 4D et vous devez assigner la valeur de la variable dans cette zone par programmation.

    Grammaire JSON

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

    Objets pris en charge

    List Box Footer