Réserver une Démo
Pré. Proc.

Branchement des macros

Les macros de ramification fournissent des constructions if-then-else. Le CTF supporte une forme limitée de ramification via ces macros :

  • si
  • sinonSi
  • autre
  • finSi
  • endTemplate (qui sort du gabarit actuel)
La structure de base des macros if et elseIf est :

%si <test> <opérateur> <test>%

où <opérateur> peut être l'un des éléments suivants :

  • ==
  • !=
  • < (comparaison mathématique, inférieur à)
  • > (comparaison mathématique, supérieur à)
  • <= (comparaison mathématique, inférieur ou égal à)
  • >= (comparaison mathématique, supérieur ou égal à)
et <test> peut être l'un des suivants :
  • une string littérale, entourée de guillemets doubles
  • une macro de substitution directe, sans les signes de pourcentage qui l'entourent
  • une référence variable
Note que si vous utilisez l’un des opérateurs de comparaison mathématiques, <test> doit être un nombre décimal au format string .

Les branches peuvent être imbriquées et plusieurs conditions peuvent être spécifiées à l'aide de l'une des méthodes suivantes :

  • et, ou
  • ou
Lors de la spécification de plusieurs conditions, « et » et « ou » ont le même ordre de priorité et les conditions sont traitées de gauche à droite.

Si les instructions conditionnelles sur les chaînes sont sensibles à la casse, « une String » n'est pas égale à « une CHAÎNE ». Par conséquent, dans certaines situations, il est préférable de définir la variable $str=TO_LOWER(variable) ou TO_UPPER(variable) puis de comparer à un cas spécifique.

Les macros ne sont pas prises en charge dans les instructions conditionnelles. Il est préférable d'affecter les résultats d'une macro ( string ) à une variable, puis d'utiliser la variable dans la comparaison.

$fldType = % TO_LOWER ($paramètre1)%

$COMMENT = "Utilisez les 4 premiers caractères pour les types de champs Date et Heure"

$fldType4 = % GAUCHE ($fldType, 4)%

%si $fldType4 == "date"%

Date et heure

%endif%

Cela prend un paramètre de valeur « Datetime », « DATETIME » ou « Date » et renvoie « Datetime ».

Les macros endif ou endTemplate doivent être utilisées pour signifier la fin d'une branche. De plus, la macro endTemplate provoque le retour immédiat du gabarit , si la branche correspondante est en cours d'exécution.

Exemple 1

%si elemType == "Interface"%

;

%autre%

%OpérationBody%

%finSi%

Dans ce cas:

  • Si l'élément Type est « Interface », un point-virgule est renvoyé
  • Si l'elemType n'est pas "Interface", un gabarit appelé Operation Body est appelé

Exemple 2

$bases="ClassBase"

$interfaces=""%

%si $bases != " " et $interfaces != ""%

:$bases, $interfaces

%elseIf $bases != ""%

:$bases

%elseIf $interfaces != ""%

: $interfaces

%finSi%

Dans ce cas, le texte renvoyé est ':ClassBase'.

Conditions utilisant une valeur booléenne

Lors de la configuration d'une ramification à l'aide de conditions impliquant une case à cocher système (champs booléens), comme Attribute.Static (attStatic), l'instruction conditionnelle serait écrite comme suit :

%si attStatic == "T"%

Par exemple:

% si attCollection == "T" ou attOrderedMultiplicity == "T" %

% fin du modèle %

Apprenez Plus