Ces macros sont utilisées afin de définir une variable locale de type
objet (objet local) ou un type de valeur, ou d'annuler leur définition.
Utilisez la syntaxe suivante pour créer un objet local
:
.set_object ( [portée.] nom [,ref-objet [,mode]])
Utilisez la syntaxe suivante pour créer une variable locale
:
.set_value ( [portée.] nom, valeur [,mode])
Utilisez la syntaxe suivante pour supprimer un objet local ou une
variable locale
:
.unset ( [portée.] nom)
Les paramètres suivants sont disponibles :
Paramètre
|
Description
|
portée
|
[facultatif] Spécifie la portée qualifiante. Si
vous ne définissez pas de portée, la portée de l'objet est la
portée courante. Utilisez le mot clé this pour attributer de façon explicite la portée
de l'objet courant, ou Parent
pour attriibuer celle de l'objet parent .
Type : Template simple qui renvoie une portée
d'objet ou de collection
|
nom
|
Spécifie le nom de l'objet ou de la variable, que
vous pouvez référencer ailleurs dans le template sous la forme
%name%.
Type : Template simple
|
ref-objet
|
[.set_object uniquement - facultatif] Spécifie
une référence d'objet. Si aucune référence n'est spécifiée ou si
une chaîne vide est fournie, la variable est une référence à
l'objet actif dans la portée de conversion courante.
Type : [portée.]portée-objet]
|
valeur
|
[.set_value uniquement] Spécifie la valeur à
donner à la variable.
Type : Template simple (les séquences
d'échappement sont ignorées)
|
mode
|
[facultatif] Spécifie le mode de création. Vous
pouvez choisir l'une des valeurs suivantes : -
new - Force la (re)-définition de la
variable à la portée courante. Recommandé lorsqu'une
variable portant le même nom peut être déjà définie
dans une portée précédente.
-
update – [défaut] Si une variable du
même nom existe déjà, celle-ci est modifiée, dans le
cas contraire, une nouvelle variable est créée.
-
newifundef - Définit la variable dans
la portée courante si elle n'a pas été définie dans
une portée externe, dans le cas contraire, rien ne
se passe.
|
Exemples :
Exemples |
.set_object(Attribute1, Attributes.First)
.set_value(FirstAttributeCode, %Attributes.First.Code%)
%FirstAttributeCode% (OID: %Attribute1%)
Résultat
:a1 (OID: 63442F85-48DF-42C8-92C1-0591F5D34525)
|
.set_value(this.key, %Code%-%ObjectID%)
Résultat
:C1-40D8F396-EE29-4B7B-8C78-E5A0C5A23325
|
.set_value(i, 1, new)
%i?%
.unset(i)
%i?%
Résultat
:true
false
Le premier appel à %i?% produit true car la variable
i est
définie, et le second produit false, car elle a été
annulée. |
Remarque : Vous pouvez utiliser l'opérateur déréférençant,
* (voir
Opérateurs du langage de génération par template), afin de convertir la valeur d'une variable avec la macro
.set_value en un nom de template. Par exemple,
le code suivant équivaut à
%Code%.:
.set_value(i, Code)
%*i%