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.
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
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
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 :
Object | Valeur mémorisée |
---|---|
Check Box | Valeur de la variable associée (0, 1, 2) |
Drop-down List | Numéro de la ligne sélectionnée |
Radio Button | Valeur de la variable associée (1, 0, True ou False pour les boutons selon leur type) |
Tab control | Numéro de l'onglet sélectionné |
Grammaire JSON
Nom | Type de données | Valeurs possibles |
---|---|---|
memorizeValue | boolean | true, 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
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, 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'instructionvar varName : Picture
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 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
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 classes dans 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 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
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) : 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
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 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
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.
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
Nom | Type de données | Valeurs possibles |
---|---|---|
text | string | tout 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) :
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 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
orthis.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
Nom | Type de données | Valeurs possibles |
---|---|---|
variableCalculation | string | "none", "minimum", "maximum", "sum", "count", "average", "standardDeviation", "variance", "sumSquare" |