Réserver une Démo

SVP notez : Cette page d’aide n’est pas pour la dernière version d’Enterprise Architect. La dernière aide peut être trouvée ici.

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