Accueil du site > Les articles > Forcer le positionnement de sous-fichier sous Adélia.
Version à imprimer Enregistrer au format PDF

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

mardi 18 mai 2004, par Grégory Jarrige Visites  1675

Il est possible de court-circuiter le positionnement par défaut d’un GESTION_SFL dans le pavé INITIALISATION de la façon suivante.


- 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 <condition particulière>
 *-- 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 <condition particulière>
 *-- 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