Form
Form : Object
Paramètre | Type | Description | |
---|---|---|---|
Résultat | Object | ← | Données associées au formulaire courant |
Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.
Description
La commande Form retourne l'objet associé au formulaire courant, s'il existe. 4D associe automatiquement un objet au formulaire courant dans les cas suivants :
- le formulaire courant est affiché par la commande DIALOG,
- le formulaire courant est un sous-formulaire,
- un formulaire table est actuellement affiché à l'écran.
Formulaire DIALOGUE
Si le formulaire courant est affiché suite à un appel à la commande DIALOG, Form retourne soit un objet vide, soit l'objet formData passé en paramètre à cette commande, le cas échéant.
Sous-formulaire
Si le formulaire courant est un sous-formulaire, l'objet retourné par Form dépend de la variable du conteneur parent :
- Si la variable associée au conteneur parent a été typée en objet (C_OBJECT), Form retourne la valeur de cette variable.
Dans ce cas, l'objet retourné par Form est identique à celui retourné par l'expression suivante :
(OBJECT Get pointer(Object subform container))->
- Si la variable associée au conteneur parent n'a pas été typée en objet, Form retourne un objet vide, maintenu par 4D dans le contexte du sous-formulaire.
Pour plus d'informations, veuillez vous reporter à la section Sous-formulaires en page.
Formulaire table
Form retourne l'objet associé au formulaire table affiché à l'écran. Dans le contexte d'un formulaire d'entrée affiché depuis un formulaire de sortie (c'est-à-dire après un double-clic sur un enregistrement), l'objet retourné contient la propriété suivante :
Propriété | Type | Description |
---|---|---|
parentForm | objet | Form objet du formulaire de sortie parent |
Exemple
Dans un formulaire affichant l'enregistrement d'une personne, un bouton ouvre un dialogue permettant de vérifier ou de modifier les noms et âges de ses enfants :
Note : Le champ objet "enfants" est représenté uniquement dans cet exemple afin de faire apparaître sa structure.
Dans le formulaire de vérification, vous avez assigné des propriétés d'objet Form aux variables :
Voici le code du bouton "Check Children" :
var $win;$n;$i : Integer
var $save : Boolean
ARRAY OBJECT($children;0)
OB GET ARRAY([Person]Children;"children";$children) //récupérer les enfants
$save:=False //initialisation du marqueur de sauvegarde
$n:=Size of array($children)
If($n>0)
$win:=Open form window("Edit_Children";Movable form dialog box)
SET WINDOW TITLE("Vérification des enfants pour "+[Person]Name)
For($i;1;$n) //pour chaque enfant
DIALOG("Edit_Children";$children{$i}) //afficher le dialogue prérempli
If(OK=1) //l'utilisateur a cliqué sur OK
$save:=True
End if
End for
If($save=True)
[Person]Children:=[Person]Children //Forcer la mise à jour du champ
End if
CLOSE WINDOW($win)
Else
ALERT("Pas d'enfant à vérifier.")
End if
Note : Cet exemple nécessite l'activation de la notation objet dans la base (voir Page Compatibilité).
Le formulaire affiche les informations pour chaque enfant :
Si des valeurs sont modifiées et que l'utilisateur clique sur le bouton OK, le champ est mis à jour (bien entendu, l'enregistrement parent devra être sauvegardé par la suite).