Aller au contenu principal
Version: Next

Current form table

Current form table : Pointer

ParamètreTypeDescription
RésultatPointerPointeur 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

Voir aussi

DIALOG
FORM SET INPUT
FORM SET OUTPUT
PRINT SELECTION