INCONVENIENT DE LA GESTION STATIQUE Le principal inconvénient de la gestion statique est l'utilisation excessive des ressources machine pour une transaction. Supposons une interrogation qui entrainerait la sélection de 500 enregistrements. Entre le moment où l'utilisateur à appuyé sur la touche ENTREE et le moment où le sous-fichier s'affichera, plusieurs secondes vont s'écouler, l'utilisateur s'impatientera. De plus les autres travaux seront pénalisés. POUR EVITER CELA NOUS DEVONS UTILISER LA GESTION PAGE à PAGE. |
Pour éviter ces longs temps d'attente, nous n'allons plus remplir complètement le sous-fichier puis l'afficher, mais remplir 1 PAGE du sous-fichier puis l'afficher. Si l'utilisateur appuie sur ROLLUP, nous chargerons une NOUVELLE PAGE et l'afficherons, etc... Le système garde à sa charge, la gestion de la touche ROLLDOWN la gestion de la touche ROLLUP, quand il "connait" la page suivante. |
PARTICULARITES DE LA GESTION PAGE à PAGE. DEFINITION DE LA FONCTION ROLLUP(XX) DANS LE SOUS-FICHIER DE contrôle. La touche ROLLUP ne doit plus être entièrement à la charge du système. Dans la gestion statique quand l'utilisateur appuie sur la touche ROLLUP, le système affiche automatiquement la page suivante s'il en existe une, sinon il affiche le message 'limite de défilement atteinte'. Dans la gestion dynamique le système défilera de lui-même les pages déja chargées (connues de lui), puis en fin de sous-fichier, passe la main au programme en transmettant l'indicateur associé à ROLLUP ON. Charge à notre programme, de charger une nouvelle page, ou de signaler la fin de fichier(en interdisant ROLLUP et en rendrant VRAI le mot-clé SFLEND ). |
AFFICHAGE DE LA PAGE QUI VIENT D'ETRE REMPLI. Par défaut lors de l'affichage d'un sous-fichier le système affiche toujours la 1ère page. Dans le cas de la gestion page à page c'est un inconvénient. Pourquoi? Je remplis la 1ère page, je l'affiche. L'utilisateur presse ROLLUP, je remplis la 2ème page et j'affiche à nouveau .... la 1ére !! POUR EVITER CELA NOUS DEVONS, DANS LE FORMAT DE contrôle DEFINIR UNE ZONE PARTICULIERE DE LONGUEUR 4 AVEC 0 DECIMALE. CETTE ZONE SERA CACHEE (il n'est pas nécessaire de l'afficher). A cette zone vous lui associerez la fonction SFLRCDNBR. Avant d'afficher votre sous-fichier vous remplirez cette zone avec un numéro d'enregistrement du sous-fichier. Lors de l'affichage du sous-fichier, le système affichera la page qui CONTIENT l'enregistrement dont le rang est indiqué dans la zone. |
DEFINITION DU FORMAT DE contrôle. A* A R FMTCTL SFLCTL(FMTSFL) A OVERLAY A SFLSIZ(0016) A SFLPAG(0015) A 30 SFLDSP A 31 SFLDSPCTL A N31 SFLCLR A 60 SFLEND(*MORE) A N60 ROLLUP(80) A LIGNE 4S 0H SFLRCDNBR NOTRE PROGRAMME VA, A CHAQUE AFFICHAGE, METTRE LE RANG DU DERNIER ENREGISTREMENT CHARGé DANS LIGNE (==> AFFICHAGE DERNIERE PAGE) EN FIN DE FICHIER OU FIN DE GROUPE LOGIQUE, IL DEVRA METTRE "ON" L'INDICATEUR 60. |
Il existait des petits problemes liés à cette methode en cas d'utilisation de sous-fichiers multilignes (SFLDROP ou SFLFOLD) Vous pouvez maintenant regarder le cours sur ces fonctions et voir comment la V2R20 à résolu ces problemes. F3 = Sortie, <ENTREE> = Visualiser le cours SFLDROP/SFLFOLD |