L4G >  Choose  

Afficher tout Masquer tout

Choose permet de sélectionner des enregistrements dans une table, par l'intermédiaire d'une fenêtre.

 

Syntaxe

Choose classe [ Where Where_exp]  [ Order by  Order_by_exp ] Using liste_champ  [ Sized dimension ] [ Titled titre_boite ] [ Starting At Start_exp ] [hint-cl]

 

Paramètres

Elément

Description

Restrictions

classe

Abréviation d'un fichier ouvert

le fichier doit déjà être ouvert

Where_exp

expression_de_sélection. Voir Where

Aucune.

Order_by_exp

expression_de_clé. Voir Order

Aucune.

liste_champ

Liste des champs séparés par le caractère ','.
La définition d'un champ s'exprime sous la forme :
Champ [ Titled titre_champ ]

spacer.gif (822 octets)16  champs maximum

champ

Identifiant d'un champ sous la forme suivante :
- nom de variable

spacer.gif (822 octets)

titre_champ

Expression alphanumérique du titre du champ

spacer.gif (822 octets)

dimension

Taille de la boîte de sélection à l'écran sous la forme :
'('
nb_lig  ','  nb_col ')'

Cette position ne doit pas être en dehors des limites de l'écran.

nb_lig

Expression entière donnant  un nombre de lignes
exprimé en 1/8 de ligne.

spacer.gif (822 octets)

nb_col

Expression entière donnant un nombre  de colonnes
exprimé en 1/4 de colonne.

spacer.gif (822 octets)

titre_boîte

Expression alphanumérique du titre de la boîte

spacer.gif (822 octets)

Start_exp

expression_logique indiquant l'enregistrement sur lequel il faut positionner le curseur.

Aucune.

hint_cl

Voir instruction Hint

Aucune.

 

Exemples

 

#ouverture de la table de travail
If !clalev([F:ZMS]) : Local File ZMOTSAI [ZMS] : Endif
# affichage de tous les enregistrements de la table
# dans l'ordre croissant des références articles
Choose [ZMS]
& Order By evalue("YITMREF") Using
& [ZMS]YITMREF Titled "Article",
& [ZMS]YITMDES Titled "Intitulé",
& [ZMS]YBASPRI Titled "Prix",
& [ZMS]YVATRAT Titled "Taux"
& Sized(80,240)
& Titled "boite de sélection"

 

# affichage des enregistrements de la table
# à partir de celui ayant des prix inférieur à 100F
# en ordonnançant selon le prix, dans l'ordre décroissant
# en positionnement curseur à la 1ère référence artice commençant par "L" avec prix > 60
Choose [ZMS]
& Where ([F:ZMS]YBASPRI < 100)
& Order By evalue("YBASPRI") Desc Using
& [ZMS]YBASPRI Titled "Prix",
& [ZMS]YITMREF Titled "Article"
& Sized(80,240)
& Titled "Depuis dernier choix, et prix < 100F"
& Starting At [ZMS]YITMREF >= "L" and [ZMS]YBASPRI > 60

 

Description

Choose permet d'ouvrir une fenêtre sur une liste d'enregistrements extraite d'une table, et d'y sélectionner un enregistrement. Cette instruction est généralement utilisée dans le traitement de sélection d'une zone définie dans un masque, pour faire une saisie dans une liste, mais on peut aussi l'utiliser dans un traitement quelconque, et en dehors de toute instruction de saisie.

Le fichier sur lequel opère la sélection doit avoir été ouvert par l'instruction File ou Local File. En particulier, il peut résulter de l'exécution d'un ordre système, comme le permet l'instruction File.

La clause Where, qui est optionnelle, définit les critères à vérifier par des enregistrements pour apparaître dans la fenêtre de sélection. En son absence, seuls les 255 premiers enregistrements de la table pourront être choisis. Les critères de sélection définis dans Choose s'aditionnent à ceux de l'instruction File lorsqu'elle en comporte, ou au dernier Filter.

La clause Order By définit l'ordre d'apparition des informations dans le masque. La précision d'un nombre de parties de clés permet de restreindre la lecture des enregistrements au premier rencontré (cas où il y a des homonymies) pour chaque nouvelle valeur prise par la clé (sur le nombre de composantes donné). En absence de clause Order By, Adonix déterminera en fonction de la clause Where, la clé qui sera utilisée. Pour les fichiers de type System, où aucune clé ne peut être définie, les enregistrements sont dans l'ordre qu'aurait leur affichage par la commande Unix.

La clause Using permet de définir les champs de la table qui seront visualisés dans la fenêtre de sélection.

Choose charge un maximum de 255 enregistrements dans le masque. Puis Le curseur se positionne dans la fenêtre de sélection sur :

  • le premier enregistrement vérifiant la clause Where (le cas échéant) en absence de clause Starting at,
  • sur le premier enregistrement vérifiant la condition Starting at,
  • sur le dernier enregistrement de la sélection si aucun ne vérifie l'expression de la clause Starting at.

La clause Sized permet de donner une dimension à la boîte de sélection.

La clause Titled permet de donner un titre à la boîte de sélection.

 

Remarques

Choose met à jour la variable fstat qui vaut 0 lorsqu'il y a des éléments à sélectionner et sinon 4, signifiant que le fichier est 'vide' (selon les critères de sélection donnés ou sinon sans enregistrement).

Si le fichier est 'vide', la fenêtre de sélection ne s'ouvre pas et la variable [S]status reste à 0.

L'enregistrement sélectionné devient l'enregistrement courant et les variables de la classe [F] (comme celles de la classe [G]) comportent les valeurs correspondant à cet enregistrement.

La variable système status retourne le statut de sortie de la sélection. status vaut 28 si un enregistrement a été sélectionné.

Les boîtes de sélection  sont refermées dès que l'on a fait un choix. L'instruction Close n'existe pas pour un Choose.

 

Erreurs associées

Erreur

Description

ERCLAS ( 7)

Le fichier n'est pas ouvert.

 

Mots-clés associés

WHERE - ORDERSTATUS - SELBOX - INPBOX - DLGBOX - MESBOX - HINT