Re: Definition de H.Afaire

Posté par drcharly93 le 25/6/2007 15:59:02
Bonjour,

h.AFaire
Utilisé dans les procédures de type trigger.
Comme les procédures de type trigger ne recoivent pas de paramètre, un certain nombre de variables d'état Hyper File sont positionnées avant chaque appel:

h.NomFichier
Chaîne de caractères : Nom logique du fichier dont le trigger est activé

h.Action
Caractère initialisé à "A" pour un trigger Avant, "P" pour un trigger après.

h.FonctionTrigger
Chaîne de caractères : Nom de la fonction Hyper File qui a déclenché le trigger

h.AFaire
Pendant l'exécution d'un trigger avant, annulation de l'exécution de la fonction Hyper File en cours en affectant "A" à la variable d'état Hyper File : h.afaire = "A"


En résumé il semblerait que dans un trigger avant si la variable h.Affaire est affectée à la valeur "A" la fonction qui a déclenché le trigger est considéré comme ignoré.

exemple:
Déclaration de la procédure qui sera appelée à chaque rencontre de la fonction HAjoute sur le fichier MonFichier
SI PAS HDecritTrigger(MonFichier,"HAJOUTE", proMaProcedure, hTriggerAvant") Alors 
  Erreur( "Erreur sur un Trigger : " & HErreurInfo())
  Retour

Exemple
Code de la procedure proMaProcedure
Si MonFichier.QteTotal < 20 Alors H.Afaire = "A"
//Traitement complémentaire si nécessaire

Exemple de code dans une fiche
EcranVersFichier()
HAjoute(MonFichier)

l'exécution de cette ligne déclenche l'appel à la procédure proMaProcedure.
Si la rubrique MonFichier.QteTotal < 20 alors l'ajout de la fiche en cours est abandonnée puisque la procédure proMaProcedure est exécuté avant l'ajout physique des rubriques dans le fichier.

En espérant avoir été suffisament clair.

Traitement jamais réalisé ni testé donc toute somme théorique.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=5232&post_id=21601