Ce modèle est appelé depuis le menu contextuel d'un champ saisissable, pour ouvrir une fenêtre de sélection, ou en première partie d'un traitement standard, ou encore depuis une fonction. Dans le cas d'une sélection sur menu contextuel d'un champ, cette fenêtre va contenir toutes les valeurs possibles du champ, ainsi que des informations complémentaires. Si ce modèle est placé en phase initiale du traitement standard, les actions sont à écrire dans le traitement contenant les actions du traitement standard.
Les informations sont récupérées d'une seule table ou classe [F] issue d'un Link. A un enregistrement correspondra une ligne dans la fenêtre de sélection. La fenêtre peut contenir 15 colonnes maximum. Le nombre d'enregistrements affichés est en fonction du paramètre utilisateur NBRCHOOSE.
Nous avons deux méthodes pour construire cette fenêtre :
soit lorsque la table est gérée par un OBJet, de faire directement appel à la liste de sélection paramétrée dans cet OBJet. Dans ce cas, il y a juste à préciser l'OBJet à utiliser.
soit nous construisons la fenêtre.
On pourra, de plus, préciser au modèle, comment afficher cette fenêtre :
sélection de tout ou partie des enregistrements de la table
tri des enregistrements dans la fenêtre ( sur quel champ, et dans quel sens )
position du curseur dans la fenêtre
taille de la fenêtre
gestion de la pagination
La pagination
Elle est automatique lorsque la fenêtre est construite avec la descrition objet.
Dans l'autre cas de figure, on a la possibilité de déclencher l'automatisme de pagination par le superviseur en positionnant DEFPAG=1 dans l'action SEL_TABLE ou de prendre en charge le développement de la pagination par l'action BOUT_TABLE.
Le modèle est un traitement superviseur qui fait appel à deux traitementsannexes : le traitement standard et le traitement spécifique, s'il sontrenseignés dans le dictionnaire de l'action. Ces deux traitements Sontstructurés de la même façon, c'est à dire qu'ils commencent par une étiquette ACTION, qui traite lesdifférents évènements susceptibles d'arriver lors de l'exécution de lafonction.
Le traitement standard
Ce traitement, fourni par ADONIX, ne doit absolument pas être modifié par lespécifique.
Le traitement spécifique
Ce traitement n'est pas fourni par Adonix, mais il peut être développé enspécifique (à la fois pour des fonctions standards pour lesquelles on désirefaire des ajouts et pour les fonctions spécifiques).
Le traitement standard ou spécifique comment donc par cette étiquette$ACTION à écrire de la façon suivante ( ou XXXXXX est le code del'évènement ) :
$ ACTION
Case ACTION
When "XXXXXX" : Gosub XXXXXX
When default
Endcase
Return
Chaqueévénement est identifié par un code alphanumérique, contenu dans la variable ACTION.Sil ny a pas de traitement pour un événement, le fonctionnement dela fonctionn'en sera pas entravé. C'est dans le sous-programme $ACTION, que l'on faitl'aiguillage vers l'étiquette ajoutée. On précisera dans cette syntaxe"case ACTION", autant de lignes qu'il y a d'évènements àcompléter. Le $ACTION est appelé du traitement superviseur par GOSUB ; Celapermetdonc d'utiliser des variables locales au traitement superviseur.
On trouvera ci-joint la liste des actions. Ontrouvera ensuite, la description détaillée de ces actions. On y décritle contexte appelant et l'OBJectif de ces actions.
Par défaut, pour un même évènement, l'action spécifique est appelée avant l'action standard.
Elle peut annuler etremplacer l'action standard si elle positionne la variable GPE à lavaleur 1.
Pour exécuter l'action standard avant l'action spécifique, dans ce cas, onduplique le traitement standard dans l'action spécifique, on y ajout letraitement spécifique puis on positionne la variable GPE à lavaleur 1. Exemple :
Traitement superviseur
GPE=0
Gosub ACTION From trait_std ( appel dustandard)
If GPE=0
Gosub ACTION From trait_spé. ( appel du spécifique)
Endif
Traitement spécifique
$ ACTION
Case ACTION
When "OUVRE" : Gosub OUVRE
When default
Endcase
Return
$OUVRE
... ( action spécifique OUVRE)
GPE =1 ( pas dappel du standard suite au spécifique )
Return