Default permet de définir la priorité de recherche des variables dans les différentes classes de variables (fichiers, masques), la priorité de recherche de manière générale d'une variable donnée sans classe, ou la classe de création par défaut de variables Adonix.
Default est aussi utilisé dans la syntaxe d'une alternative Case (When Default). Pour cette syntaxe, voir Case.
DefaultMask classe | liste_classes
DefaultFile classe | liste_classes
Default liste_classes
Default classe
DefaultLocal
DefaultGlobal
Elément | Description | Restrictions |
liste_classes | Liste de classes séparées par le caractère ','. | Aucune. |
classe | Désigne une abréviation de masque dans la syntaxe Default Mask, une abréviation de fichier dans la syntaxe Default File. | Les classes doivent être accessibles. |
# Seules les classes suivantes sont accessibles pour une variable
# dont on ne précise pas la classe, et dans l'ordre donné
Default [S], [L], [V], [C], [M:XY]
# Par défaut, les variables sans classe seront cherchées en classe [L]
Default [L]
# Par défaut, les variables inexistantes sont créées en classe [L]
Default Local
# Avec l'ordre précédent, la variable I est créée dans la classe [L]
# avec le type Decimal si elle n'existait pas au préalable
For I = 1 To 100 : Infbox num$(I) : Next I
# [CLI] doit être utilisé par défaut pour toute variable de masque
# et le fichier par défaut sera [PROD]
Default Mask [CLI]
Default File [PROD]
# On désire que par défaut les variables soient recherchées dans
# les masques (dans l'ordre [CLI],[PRO],[REP], suivis des autres
# masques), puis dans les classes [L] et [C] exclusivement.
Default Mask [REP]
Default Mask [PRO]
Default Mask [CLI]
Default [M], [L], [C]
# On désire que les classes par défaut soient d'abord [C], puis [L],
# puis [V], puis les autres classes dans l'ordre habituel.
Default [V] : Default [L] : Default [C]
# On désire que par défaut les variables soient recherchées
# dans la liste des masques (dans l'ordre [CLI],[PRO],[REP])
Default Mask "[CLI],[PRO],[REP]"
# On désire que par défaut les variables soient recherchées
# dans la liste des fichiers (dans l'ordre [FI1],[FI2],[FI3])
Default File "[FI1],[FI2],[FI3]"
# Les variables seront recherchées dans les fichiers, puis dans les
# masques, puis dans les classes [V] et [S] exclusivement. Les masques
# accessibles sont dans l'ordre [CLI],[PRO],[REP], et les fichiers
# accessibles sont dans l'ordre [FI1],[FI2],[FI3].
File [FI1], [FI2], [FI3]
Mask CLIENT [CLI], PRODUITS [PRO], REPRES [REP]
Default [F], [M], [V], [S]
# Seule la classe [V] est utilisable pour les variables sans classe
Default [V], [V]
L'ordre Default permet de définir l'ordre dans lequel Adonix essaie de trouver les variables dont la classe n'est pas précisée, avec les diverses syntaxes données ci-dessous :
La syntaxe Default Mask permet de préciser quel est le masque par défaut. Ce masque par défaut sera utilisé :
La syntaxe Default File permet de préciser quel est le fichier par défaut. Ce fichier par défaut sera utilisé :
La syntaxe Default classe permet de préciser quelle est la classe de variables à utiliser par défaut lorsqu'une variable n'est précédée d'aucune indication de classe. Si la variable ne peut être trouvée dans la classe par défaut, la recherche peut être faite dans les autres classes.
La syntaxe Default liste_classes permet de donner une liste exhaustive de classes (il faut qu'il y en ait au moins deux) pour la recherche de variables lorsqu'aucune classe n'est précisée. A partir du moment où une liste de classes est donnée, seules les classes de la liste sont utilisées pour la recherche des variables. Attention, si on exclut la classe [S] de cette liste, on n'a plus accès aux variables système Adonix sauf si elles sont précédées de [S].
Les deux syntaxes Default Local et Default Global permettent de définir la classe utilisée pour la création par défaut de variables. Rappelons que des variables peuvent être créées automatiquement par un traitement, une procédure ou un menu, lors d'une affectation. Si la variable à laquelle on affecte une valeur n'a pas de classe, et si elle n'existe pas, elle sera automatiquement créée avec un type correspondant au type de l'expression affectée, choisi parmi Date, Decimal et Char de longueur maximale. La classe dans laquelle la variable sera créée est donc [V] si l'on a utilisé Default Global et [L] si l'on a utilisé Default Local.
Adonix maintient à tout instant une liste des classes par défaut, une liste des masques par défaut, une liste des fichiers par défaut, et une fenêtre par défaut. Ces listes sont utilisées dans les recherches de variables et pour définir des arguments par défaut.
La liste des masques par défaut est modifiée par :
La liste des fichiers par défaut est modifiée par :
La liste des classes par défaut est mise à jour par :
La liste des classes par défaut est rétablie au retour d'un sous-programme.
Si l'on désire donner plusieurs classes par défaut sans donner une liste exclusive de classes, il suffit d'écrire plusieurs ordres Default en donnant à chaque fois une classe, et ce dans l'ordre inverse de celui désiré. Si par contre l'on désire une seule classe de recherche exclusive, il suffit de donner un ordre Default avec deux fois cette classe. Le diagramme qui suit montre ce comportement:
APRES L'ORDRE... | LA LISTE DES DEFAULTS EST ... |
Default [z] | cl1 cl2 cl3 x cl4 y z ... |
Dans un traitement l'option utilisée par défaut est Default Global; dans un sous-programme il s'agit de Default Local.
Attention à ne pas confondre Default [L] et Default Local. La première syntaxe précise qu'une variable donnée sans classe est recherchée par défaut dans la classe [L]; la deuxième précise que si une variable n'existe pas, elle sera créée par défaut dans la classe [L].
Attention à ne pas omettre [S] dans la liste des classes lorsqu'on donne une liste exhaustive dans un ordre Default. En effet, dans ce cas, toutes les variables système Adonix deviennent inaccessibles, sauf si on fait systématiquement précéder leur nom par [S].Lorsqu'on met [M] dans une liste de classes par défaut, ceci signifie l'ensemble des masques de la liste des masques par défaut. De même, lorsqu'on utilise [F], il s'agit de la liste des fichiers par défaut.
Ces listes de masques et de fichiers sont les listes courantes, et elles sont susceptibles, en évoluant, de faire évoluer la liste des classes par défaut. Par exemple :
File [FX], [FY], [FZ]
Mask [M1], [M2], [M3]
# Après l'ordre ci-dessous, les classes par défaut sont dans l'ordre :
# [V], [S], [FX], [FY], [FZ], [M1], [M2], [M3], [C]
Default [V], [S], [F], [M], [C]
#
# Après les ordres File et Mask ci-dessous, les classes par défaut
# deviennent : [V], [S], [FA], [FB], [M1], [C]
File [FA], [FB] : Mask [M1]
En l'absence de tout ordre Default, lorsqu'on exécute un programme, les classes par défaut sont celles qui seraient données par l'ordre:
Default [S], [L], [V], [M], [F]