DEFAULT

Sommaire


Defaultpermet de définir la priorité de recherche des variables dans les différentesclasses de variables (fichiers, masques), la priorité de recherche de manièregénérale d'une variable donnée sans classe, ou la classe de création par défautde variables Adonix.

Defaultest aussi utilisé dans la syntaxe d'une alternative Case (When Default). Pourcette syntaxe, voir Case.

 

Syntaxes

 

 DefaultMask classe | liste_classes
 DefaultFile classe | liste_classes
 Default liste_classes
 Default classe
 DefaultLocal
 DefaultGlobal

 

Paramètres

 

Elément

Description

Restrictions

liste_classes

Liste de classes séparées par lecaractère ','.

Aucune.

classe

Désigne une abréviation de masque dansla syntaxe Default Mask, une abréviation de fichier dans la syntaxe DefaultFile.

Les classes doivent être accessibles.

 

Exemples

   # 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]

 

Description et commentaires

L'ordre Defaultpermet de définir l'ordre dans lequel Adonix essaie de trouver les variablesdont la classe n'est pas précisée, avec les diverses syntaxes donnéesci-dessous :

La syntaxe DefaultMask permet de préciser quel est le masque par défaut. Ce masque par défautsera utilisé :

La syntaxe DefaultFile permet de préciser quel est le fichier par défaut. Ce fichier par défautsera utilisé :

La syntaxe Defaultclasse permet de préciser quelle est la classe de variables à utiliser pardéfaut lorsqu'une variable n'est précédée d'aucune indication de classe. Si lavariable ne peut être trouvée dans la classe par défaut, la recherche peut êtrefaite dans les autres classes.

La syntaxe Defaultliste_classes permet de donner une liste exhaustive de classes (il faut qu'il yen ait au moins deux) pour la recherche de variables lorsqu'aucune classe n'estprécisée. A partir du moment où une liste de classes est donnée, seules lesclasses 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 variablessystème Adonix sauf si elles sont précédées de [S].

Les deux syntaxes DefaultLocal et DefaultGlobal permettent de définir la classe utilisée pour la création par défaut devariables. Rappelons que des variables peuvent être créées automatiquement parun 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 del'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 Globalet [L] si l'on a utilisé DefaultLocal.

 

Remarques

Adonix maintient à tout instant une liste des classes par défaut, une listedes masques par défaut, une liste des fichiers par défaut, et une fenêtre pardéfaut. Ces listes sont utilisées dans les recherches de variables et pourdé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 listeexclusive de classes, il suffit d'écrire plusieurs ordres Default endonnant à 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 dedonner un ordre Defaultavec deux fois cette classe. Le diagramme qui suit montre ce comportement:

 

APRESL'ORDRE...

LA LISTEDES DEFAULTS EST ...

Default [z]
Default [y]
Default [x]
Default [x],[y],[z]
Default [x],[x]

cl1 cl2 cl3 x cl4 y z ...
z cl1 cl2 cl3 x cl4 y ...
y z cl1 cl2 cl3 x cl4...
x y z cl1 cl2 cl3 cl4...
x y z (pas d'autre classe)
x (pas d'autre classe)

 

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 syntaxeprécise qu'une variable donnée sans classe est recherchée par défaut dans laclasse [L]; la deuxième précise que si une variable n'existe pas, elle seracréée par défaut dans la classe [L].

Attention à ne pas omettre [S] dans la liste des classes lorsqu'on donne uneliste exhaustive dans un ordre Default. En effet, dans ce cas, toutes les variablessystème Adonix deviennent inaccessibles, sauf si on fait systématiquementprécéder leur nom par [S].Lorsqu'on met [M] dans une liste de classes pardéfaut, ceci signifie l'ensemble des masques de la liste des masques pardéfaut. De même, lorsqu'on utilise [F], il s'agit de la liste des fichiers pardéfaut.

Ces listes de masques et de fichiers sont les listes courantes, et ellessont susceptibles, en évoluant, de faire évoluer la liste des classes pardé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 pardéfaut sont celles qui seraient données par l'ordre:

Default[S], [L], [V], [M], [F]

 

Erreurs associées

Erreur

Description

ERCLAS( 7)

Laclasse n'existe pas (dans le cas d'un masque ou d'un fichier, ceci signifiequ'il n'a pas été déclaré dans le dernier ordre Mask ou File).

 

Mots-clés associés

MASK - EFFZO - AFFZO - FILE - READ - FOR - LOOK - READLOCK- WRITE- REWRITE DELETE- LOCAL- GLOBAL


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved