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.

Macros de branchement

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

  • si
  • sinon si
  • autre
  • fin si
  • endTemplate (qui sort du gabarit courant)
La structure de base des macros if et elseIf est la suivante :

%if <test> <opérateur> <test>%

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

  • ==
  • !=
  • < (comparaison mathématique, moins que)
  • > (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 :
  • un littéral de string , entre guillemets doubles
  • une macro de substitution directe, sans les signes de pourcentage englobants
  • 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 options suivantes :

  • et, ou
  • ou
Lorsque vous spécifiez 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, 'a String ' n'est pas égal à 'A STRING'. 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 ($parameter1)%

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

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

%if $fldType4 == "date"%

Dateheure

%fin si%

Ceci prend un paramètre de valeur " valeur ", "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 gabarit provoque le retour immédiat du gabarit, si la branche correspondante est en cours d'exécution.

Exemple 1

%if elemType == "Interface"%

;

%autre%

%OperationBody%

%fin si%

Dans ce cas:

  • Si l'elemType 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"

$interface=""%

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

: $bases, $interfaces

%elseIf $bases != ""%

: $bases

%elseIf $interfaces != ""%

: $interfaces

%fin si%

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

Conditions utilisant une valeur booléenne

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

%if attStatic == "T"%

Par exemple:

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

% endTemplate %

Apprenez Plus