Forcer le positionnement de sous-fichier sous Adélia.

– Déclarer une variable avec nom DDS à INZxx (où xx est le numéro dela transaction), de 1 car. alpha., en *NODEF

 Dans le pavé INITIALISATION, écrire les lignes suivantes (dans l’exemple ci-dessous,on gère le sous-fichier de la transaction n°1) :


EFFACER 1
*
*-- Ne passe pas dans le positionnement par défaut
à INZ01 = *BLANK
*
SI
*-- Clé de positionnement différente du cas général
POSITIONNER_AV VUE_POSITION
SINON
*-- Cas général
POSITIONNER_AV VUE_SFL
FIN
*
*------------
GESTION_SFL 1
*------------
PRESENTER VUE_SFL
....
MAJ_SFL
*-----------
FIN_GESTION_SLF

Attention : si vous travaillez sous Adelia/400 avec un logiciel d’émulation de type Client Access, vous vous êtes sans doute heurté au même problème que moi, à  savoir l’impossibilité de déclarer la variable à INZ01 dans l’environnement de données. Ceci est dû au fait que l’on ne peut saisir de « à  » en nom de zone. Je m’en suis sorti en utilisant la solution ci-dessous, qui consiste à  déclarer la variable à INZ01 dans le source d’une règle de gestion, pour pouvoir ensuite l’utiliser à  ma guise.

Source de la RG INIT_INZ01 :


*-- RG à  déclarer entre l'ordre EFFACER et l'ordre GESTION_SF
* pour forcer un positionnement sur une autre vue que le
* sous-fichier
DECLARER à INZ01;à INZ01 1 *NODEF
à INZ01 = *BLANK
Du coup, le source exemple vu plus haut est légèrement modifié comme suit :

EFFACER 1
*
*-- Ne passe pas dans le positionnement par défaut
INSERER_RG INIT_INZ01
*
SI
*-- Clé de positionnement différente du cas général
POSITIONNER_AV VUE_POSITION
SINON
*-- Cas général
POSITIONNER_AV VUE_SFL
FIN
*
*------------
GESTION_SFL 1
*------------
PRESENTER VUE_SFL
....
MAJ_SFL
*-----------
FIN_GESTION_SLF

Print Friendly, PDF & Email