Aller au contenu principal
Version: Next

Form

Form : Object

ParamètreTypeDescription
RésultatObjectDonné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éTypeDescription
parentFormobjetForm 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).

Voir aussi

DIALOG