Objets
Type
PARAMETRAGE OBLIGATOIRE
Cette propriété désigne le type objet de formulaire actif ou inactif.
Grammaire JSON
Nom | Type de données | Valeurs possibles |
---|---|---|
type | string | "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
Nom | Type de données | Valeurs possibles |
---|---|---|
name | string | Tout 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 :
Object | Valeur mémorisée |
---|---|
Case à cocher | Valeur de la variable associée (0, 1, 2) |
Liste déroulante | Numéro de la ligne sélectionnée |
Bouton radio | Valeur de la variable associée (1, 0, True ou False pour les boutons selon leur type) |
Onglets | Numéro de l'onglet sélectionné |
Grammaire JSON
Nom | Type de données | Valeurs possibles |
---|---|---|
memorizeValue | boolean | true, 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
Nom | Type de données | Valeurs possibles |
---|---|---|
dataSource | texte, ou tableau de textes |
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 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 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 - Radio Button - Spinner - Splitter - Stepper - Subform - Tab control - 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'instructionC_PICTURE(varName)
ait été exécutée avant le chargement du formulaire (typiquement, dans la méthode appelant la commandeDIALOG
), 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
Nom | Type de données | Valeurs possibles |
---|---|---|
dataSourceTypeHint | string |
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
Nom | Type de données | Valeurs possibles |
---|---|---|
class | string | Une 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
Nom | Type de données | Valeurs possibles |
---|---|---|
dataSource | string | Expression qui renvoie une collection ou une entity selection. |
Objets pris en charge
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
Nom | Type de données | Valeurs possibles |
---|---|---|
listboxType | string | "array", "currentSelection", "namedSelection", "collection" |
Objets pris en charge
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
Nom | Type de données | Valeurs possibles |
---|---|---|
pluginAreaKind | string | Nom de la zone externe du plug-in (commence par un caractère %) |
Objets pris en charge
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
Nom | Type de données | Valeurs possibles |
---|---|---|
radioGroup | string | Nom du groupe radio |
Objets pris en charge
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
Nom | Type de données | Valeurs possibles |
---|---|---|
text | string | tout 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) :
Calcul | Num | Text | Date | Time | Bool | Pict | type var pied de page |
---|---|---|---|---|---|---|---|
Minimum | X | X | X | X | X | Identique au type de colonne | |
Maximum | X | X | X | X | X | Identique au type de colonne | |
Sum | X | X | X | Identique au type de colonne | |||
Count | X | X | X | X | X | X | Integer |
Average | X | X | Real | ||||
Standard deviation(*) | X | X | Real | ||||
Variance(*) | X | X | Real | ||||
Sum squares(*) | X | X | Real | ||||
Custom ("none") | X | X | X | X | X | X | Tous |
(*) 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
outhis.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
Nom | Type de données | Valeurs possibles |
---|---|---|
variableCalculation | string | "none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare" |