Pour gérer en dynamique le remplissage du sous-fichier, il ne faut pas utiliser l'instruction PAGINER_AVANT, car celle-ci n'est valable que dans le cas d'un remplissage automatique du sous-fichier (GESTION_SFL, MAJ_SFL, FIN_GESTION_SFL).
Il faut :
Cocher la case "Pagination dynamique" pour la vue *1, ou mettre 2 dans le type de pagination (sur Adélia/400).
Ne pas indiquer de fichier guide pour le chargement.
Créer une vue 01 (par exemple), qui a comme provenance fichier : *1.
Cette vue est en mise à jour avec création d'enregistrements.
Son accès se fait par clé, avec WRAN01 comme clé.
Le mot directeur de cette vue est, par exemple, LIGNE_SF1.
Créer éventuellement une vue pour travailler sur le fichier à visualiser (mise à jour, etc.).
Au niveau du prototypage, déclarer la variable :
zone = WRAN01 MD = WRAN01 Lg = 4 Déc = 0 Réfer. = *NODEF
Créer une procédure de chargement d'une page du sous-fichier :
DEBUT_PROCEDURE CHGSF1 |
CHGSF1 est le nom de la procédure |
*NBL01 = 0 |
Remise à 0 du nombre d'enregis- |
*IN08 = '0' |
trements chargés dans la page |
TANT_QUE condition de lecture vérifiée ET *NBL01 < *NBLS1 |
|
zones écran = zones fichier |
Remplace l'ordre PRESENTER |
*NBL01 = *NBL01 + 1 |
+ 1 dans le nombre d'enregistrements de la page en cours |
*DEL01 = *DEL01 + 1 |
) remplace |
WRAN01 = *DEL01 |
) l'ordre |
CREER LIGNE_SF1 |
) MAJ_SFL |
lire enregistrement suivant du fichier |
|
REFAIRE |
|
*IN07 = '0' |
|
SI enregistrement suivant du fichier N_EXISTE_PAS |
|
*IN07 = '1' |
) Efface le "+" de continuation |
FIN |
|
FIN_PROCEDURE |
|
Saisir dans le paragraphe INITIALISATION :
*********************** |
|
INITIALISATION aa |
aa = n° de transaction |
*********************** |
|
EFFACER 1 |
Initialisation du sous-fichier |
lire le premier enregistrement du fichier |
|
TRAITER_PROC CHGSF1 |
Chargement de la 1ère page |
... |
|
Saisir dans le paragraphe TRANSACTION :
********************** |
|
TRANSACTION aa |
aa = n° de transaction |
********************* |
|
SI *PAGAV |
|
TRAITER_PROC CHGSF1 |
|
*RANPA1 = 0 |
Permet si *MEME_PAGE = '1' |
TRAITER aa |
de forcer le réaffichage de la page chargée, |
FIN |
sinon c'est la page en cours qui est réaffichée. |
Remarque : les ordres GESTION_SFL et FIN_GESTION_SFL s'utilisent dans les paragraphes VERIFICATION et VALIDATION, de la même manière que lors du remplissage automatique du sous-fichier.
Mots réservés utilisés
WRAN0n
est la variable générée par Adélia pour la gestion du mot-clé SFLRCDNBR (numéro du format de contrôle de sous-fichier).
*DEL0n
est le mot réservé Adélia qui contient le nombre d'enregistrements total chargés dans le sous-fichier.
L'affectation WRAN01 = *DEL01 permet d'afficher la dernière page chargée dans le sous-fichier.
*NBLSn
est le mot réservé Adélia qui contient le nombre d'enregistrements contenus dans la page de sous-fichier lorsque celui-ci est en chargement dynamique.
*NBL0n
est le mot réservé Adélia qui contient le nombre d'enregistrements déjà chargés dans la page en cours du sous-fichier.
*IN07
est l'indicateur associé à l'utilisation du mot-clé SFLEND (caractère de suite) pour le sous-fichier *1. Cet indicateur est défini dans les standards de génération.
Il est positionné à 1 lorsque le remplissage du sous-fichier est terminé.
*IN08
est l'indicateur associé à l'utilisation du mot-clé SFLNXTCHG. Cet indicateur est à 0 afin que les lignes créées ne soient actives que dans le cas où elles ont été modifiées.
Cliquez ici pour l'explication détaillée des mots réservés.