Current form table
Current form table : Pointer
Paramètre | Type | Description | |
---|---|---|---|
Résultat | Pointer | ← | Pointeur vers la table à laquelle appartient le formulaire actuellement affiché |
Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.
Description
La fonction Current form table retourne un pointeur vers la table à laquelle appartient le formulaire affiché à l'écran ou imprimé dans le process courant.
La fonction retourne Nil dans les cas suivants :
- il n'y a pas de formulaire affiché ou en cours d'impression dans le process courant,
- le formulaire courant est un formulaire projet.
Si plusieurs fenêtres sont ouvertes simultanément dans le process courant (ce qui signifie que la dernière fenêtre ouverte est la fenêtre courante active), la fonction retourne un pointeur vers la table du formulaire affiché dans la fenêtre active.
Si le formulaire affiché est le formulaire détaillé d'une zone de sous-formulaire (c'est-à-dire que pendant la saisie de données, l'utilisateur a double-cliqué sur un enregistrement ou un sous-enregistrement dans une zone de sous-formulaire "double-cliquable"), la fonction retourne :
- un pointeur vers la table de la zone de sous-formulaire, si cette dernière affiche une table.
- un pointeur non significatif si la zone de sous-formulaire affiche une sous-table.
Exemple
Dans votre application, vous utilisez la convention suivante : au moment de l'affichage d'un enregistrement, la variable vsEnrCourant, si elle est présente dans un formulaire, affiche "Nouvel enregistrement" si vous créez un nouvel enregistrement, ou par exemple "56 parmi 5200" si vous ouvrez le 56e enregistrement d'une sélection en comportant 5200. Pour cela, vous pouvez créer une fois la variable vsEnrCourant et lui associer la méthode objet décrite ci-dessous, puis la copier et la coller dans tous les formulaires que vous voulez :
//Méthode objet de la variable non saisissable vsEnrCourant
Case of
:(Form event code=On Load)
C_STRING(31;vsEnrCourant)
var $vpTableParente : Pointer
var $vlNumEnr : Integer
$vpTableParente:=Current form table
$vlNumEnr:=Record number($vpTableParente->)
Case of
:($vlNumEnr=-3)
vsEnrCourant:="Nouvel enregistrement"
:($vlNumEnr=-1)
vsEnrCourant:="Pas d'enregistrement"
:($vlNumEnr>=0)
vsEnrCourant:=String(Numero dans selection($vpTableParente->))+" parmi "+Chaine(Enregistrements trouves($vpTableParente->))
End case
End case