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.
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.
Il n'y a pas de fichier trace ouvert.
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 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