Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME II. Les Objets

12. MPAGE

12.3 Sélection des records d'une MPAGE

12.3.1 CRITERION

Cette ACTION permet de limiter le nombre de records à visualiser dans la fenêtre scrollante de la MPAGE. Il s'agit normalement d'une fonction C qui retourne une valeur. Cette ACTION est appelée à chaque lecture d'un nouveau record dans le fichier en vue d'un affichage.

Exemple

    CRITERION {C_FN return(CheckRecord());}

La valeur de retour de cette fonction peut prendre trois valeurs différentes :

Par exemple, si on lit le fichier suivant un INDEX qui correspond à un chiffre d'affaire, et qu'on ne veuille voir que les records dont le chiffre d'affaire est inférieur à un nombre donné, on appliquera le critère suivant :

    CRITERION {C_FN return((is_client_CHAFF <= apg_client_VAL) ? 0 : -1);}

La valeur de retour 1 est à utiliser avec prudence en règle générale. Prenons un exemple : supposons que la MPAGE affiche dans l'écran tous les clients PAR ORDRE ALPHABETIQUE, et ayant un chiffre d'affaire inférieur à une valeur donnée. Supposons que le fichier des clients contienne 50000 records et que seuls 3 clients aient un chiffre d'affaire répondant au critère.

Le programme d'affichage de la MPAGE va lire le fichier jusqu'à avoir trouvé assez de records pour remplir la MPAGE, ou jusqu'à une valeur de CRITERION égale à -1, ou encore jusqu'à la fin du fichier. Dans le cas présent, ce sera la fin du fichier qui terminera la lecture et par conséquent, avant l'affichage de la MPAGE, il faudra lire 50000 records!

Le CRITERION est donc le plus souvent utilisé pour tester une valeur limite de l'INDEX de classement de la MPAGE.

12.3.2 SPG

On peut ajouter dans la définition d'une MPAGE une page supplémentaire : la SPG (SCANPAGE). Celle-ci permet de déterminer les records à afficher et ceux à sauter. Cette fonctionnalité peut être combinée aux CRITERION.

Si SPG est définie, elle peut être indentique à la APG ou non. Elle servira à définir l'index, la condition de recherche et la sélection de records à afficher.

Concrètement, on a deux possiblités : soit on définit une PAGE dont la END_FN ou une FNKEY lance MP_EDIT_ISAM. Dans la MPAGE, on indiquera cette PAGE comme SPG.

Alternativement, on définira la SPG indentique à la APG et l'utilisateur conservera sous les yeux les informations de sélection.

Si SPG == APG, MP_EDIT_ISAM démarre par l'édition de la APG. Sinon, la APG ne servira qu'à afficher le contenu de l'enregistrement courant de la MPAGE.

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be