Les variables EDV dans les scripts

Reportez vous à la rubrique Le nom des variables pour la différence entre les noms absolus et relatifs.
A consulez aussi : Structures internes des variables

Propriété implicite

Généralement, les scripts accèdent à la valeur des variables :
.MonDom.MaVar / 100;

Mais il est possible d'accéder aux propriétés de ces variables. Le caractère : est la clé de cet accés :
.MonDom.MaVar:Name retourne le nom complet de la variable.

En quelque sorte, :Value est la propriété implicite, par défaut.

(.MonDom.MaVar).Name ne fonctionne pas, car .MonDom.MaVar est interprété comme .MonDom.MaVar:Value. JScript chercherait donc une propriété Name à l'objet contenu dans la valeur de .MonDom.MaVar.

Par contre, les parenthèses peuvent être intéressantes pour accéder aux propriétés de l'objet contenu dans la valeur de la variable :
(.MonDom.MonText).ToUpper() applique la fonction ToUpper() au texte (de type String) contenu dans la valeur de la variable.
Equivalent à : .MonDom.MonText:Value.ToUpper().

Relativité et propriétés

Pour accéder aux variables enfants, la syntaxe est : me.VarEnfant

me.Name retourne la valeur d'un enfant Name.
me.Name:Name retourne le nom complet d'un enfant Name.

La notation .. (deux points) signifie "Mon parent". Sans rien de plus, c'est la valeur de mon parent.
..:ShortName est donc le nom court de mon parent.

Une variable enfant qui contrôle que son parent ne dépasse pas la valeur de 10 a le script suivant :
if (.. > 10)
  .. = 10;

Notez que le retour ŕ la ligne est optionnel.
Un tel script ne prévoit pas de renvoyer une valeur. Cette variable de contrôle n'en nécessite pas. Toutefois, JScript renvoie la valeur 10, ce qui peut provoquer des alertes de type incompatibles. Vous pouvez définir le type Null à la variable ou terminer votre script par null;.

Vous pouvez tout de même donner le type Boolean à la variable et faire basculer la valeur de cette variable ŕ chaque fois que le contrôle a été opéré :
if (.. > 10) {
  .. = 10;
  me = NOT me;
}

Propriétés

Propriété Type .NET Commentaire
Name String Nom de la variable.
Fournit le nom complet de la variable, domaine compris.
Voir Noms de variables.
Domain String Domaine de la variable. Le domaine finit toujours par un . (point).
ShortName String Nom "local" de la variable, c'est à dire sans le domaine.
ClassName String Nom de la classe et bibliothèque de la variable.
Value Object Valeur de la variable.
ValueType EDVType Type de la valeur.
Voir EDVType.
Script String Script définissant la valeur de la variable.
Voir Script.
AutoReset Boolean La propriété "Reset automatique" signifie que la valeur booléenne, numérique ou de type texte ne reste jamais à la valeur attribué, elle repasse automatiquement à sa valeur par défaut après avoir générer son événement de modification.
C'est la différence que l'on peut trouver entre une case à cocher et un bouton, dans un cas, un clic fait basculer l'état, dans l'autre le basculement ne dure que le temps du clic. C'est, en quelque sorte, la diférence entre un état et un événement, une mémoire et une action, l'esprit et le corps, l'énergie et la matière...
SecuredEvent Boolean Vrai par défaut. L'activation de certaines fonctions depuis les scripts peut nécessiter de désactiver cette fonction pour contourner le système de sécurité de .Net.
Changing Boolean Vrai pendant la modification de la valeur. Utilisé dans les scripts avec la fonction WHEN.
Changed Boolean Vrai après la modification de la valeur. Utilisé dans les scripts avec la fonction WHEN.
Permet de s'assurer qu'un script s'exécute après les autres.
Scripting Boolean Vrai pendant la modification du script, c'est à dire pendant la création de la variable. Utilisé dans les scripts avec la fonction WHEN.
Permet d'initialiser une valeur par défaut au chargement des variables.
Parent Variable Retourne la variable parente dans l'arborescence. Attention, elle doit exister.
Object Variable Retourne la variable elle-même.

Ces propriétés de base sont accessibles par : (exemple : .MonDom.MaVar:ShortName)
Quelques types de variables prévoient d'autres propriétés et méthodes : voir, pour exemple, les DataTable.

Sinon, les propriétés et méthodes sous-jacentes des valeurs sont accessibles par la propriété Value de la variable :
.MonDom.MaVarDate:Value.ToString("dd/MM/yyyy") ou (.MonDom.MaVarDate).ToString("hh:mm")

Performances et références locales

L'accés à une variable EDV depuis JScript est plus lent qu'un accés direct à une variable JScript, pensez donc à créer une variable locale référençant la variable EDV dans le cas où plusieurs appels sont nécessaires soit à la valeur de la variable soit à l'objet lui-même.

var lValeurDeMaVar = .MonDom.MaVar;   //Propriété Value implicite de la variable
var lMaVarEDV = .MoDom.MaVar:Object;   //La variable elle-même, de type Variable
echo(lMaVarEDV.Name + " = " + lValeurDeMaVar);

Dans ce script, la référence à la variable EDV est faite deux fois : une pour récupérer sa valeur, une autre pour récupérer l'objet lui-même.

var lMaVarEDV = .MonDom.MaVar:Object;
var lValeurDeMaVar = lMaVarEDV.Value;
echo(lMaVarEDV.Name + " = " + lValeurDeMaVar);

Une convention à suivre est de préfixer le nom des variables JScript locales par 'l' (comme locale). Ceci a aussi l'avantage d'éviter la confusion entre des variables JScript et EDV.

Voir aussi

Les variables Système
JScript
Le nom des variables
Structures internes des variables