Points d'entrée > Module Comptabilité > Script standard SUBTBU 

TBUZONSPE : Ajout de zone en spécifique dans la saisie des budgets

Le point d'entrée TBUZONSPE permet la prise en compte de nouveaux champs dans la génération des écrans de transactions de budget.

Contexte et mode de fonctionnement


Contexte d'appel

Ce point d’entrée est appelé lors de la génération des écrans de transaction de budget.
On peut alors ajouter en spécifique un champ dans l'écran modèle BUD.


Transaction

Il y a une transaction en cours sur [F:AMK2], [F:AMZ2], [F:AMA2] & [F:AMP2]. Mais à priori seule la table AMSKZON [AMZ2] nous interessera ici.


Fichier trace

Il n'y a pas de fichier trace ouvert.


Variables et masques disponibles

On ecrit dans [F:AMZ2] à partir de l'écran modèle [F:AMZ].

La variable MASKREF désigne le masque de référence, en l'occurence BUD.
La variable MASKDES désigne le masque de déstination WMBUD+Code transaction.

La table TABBUDTYP [F:TBU] est ouverte, on peut donc notamment identifier la catégorie de budget (Période/Compte/Section) via [F:TBU]BUCAT.

Lors de l'ajout du nouveau champ dans l'écran BUD, la définition de la position Pos (n° de colonne dans le tableau) est désormais prise en compte. En revanche, ce nouveau champ sera nécessairement présenté avant les champs calculés définit dans le tableau de la transaction de budget.

On identifie le nom du nouveau champ souhaité avec NOMZ=Le nom du nouveau champ et on écrit dans AMKZON [AMZ2] pour qu'il soit présent dans l'écran généré.

La variable GOK est gérée en retour du point d'éntrée dans SUBTBU.src, avec un Rollback sur GOK=0 et un Rollback+Roll si GOK<1.


Exemple d'utilisation

Exemple de traitement spécifique lié au point d’entrée pour un champ NEWZONE ajouté dans l’écran BUD que l'on souhaite faire apparaitre pour les budgets de catégorie 'Compte' :

$ACTION
Case ACTION
 When "TBUZONSPE" : Gosub TBUZONSPE
 When Default
Endcase
Return

$TBUZONSPE
If [F:TBU]BUDCAT = 3 : #Catégorie de budget Compte 
 For NOMZ="NEWZONE"
  Read [AMZ]CODE=MASKREF;NOMZ
  If !fstat
   NUMCOL +=1
   [F:AMZ2] = [F:AMZ] 
   [F:AMZ2]NUMLIG = NUMCOL
   [F:AMZ2]CODMSK = MASKDES
   Write [AMZ2]
   If fstat
    GOK=0 : Call FSTA("AMZ2") From GLOCK : Break
   Endif
   Call COPIE_ACTION(MASKREF,MASKDES,[F:AMZ]CODZON,[F:AMZ2]CODZON,0)
    If GOK<1 : break : Endif
  Endif
 Next
Endif
Return