Si vous utilisez les boutons | | , vous êtes sûr d'utiliser la syntaxe correcte lors de la création de la formule.
Ce bouton ne fait que transférer la variable affichée sous Nom [Name] dans le champ de saisie.
Un algorithme construit par une condition IF peut se présenter comme suit :
IF ( ) THEN D3 = ELSE D3 = ENDIF
Entre les parenthèses () , saisissez votre condition (par ex. "L1.EQ.10"). Ici, dans l'exemple, "D3" est la variable sélectionnée dans la liste des variables.
Derrière THEN D3 = , saisissez la valeur que D3 doit prendre lorsque la condition est remplie .
ELSE D3 = contient la valeur de D3 si la condition n'est pas remplie . ENDIF permet de conclure la condition.
IF (L1.EQ.10) THEN D3 = 20 ELSE D3 = 30 ENDIF
-> Il est généré ce qui suit :
ELSEIF ( ) THEN <selektierte Variable> =
Si des distinctions de cas doivent être faites, il est possible de travailler avec des instructions ELSEIF.
IF (L1.EQ.10) THEN D3 = 10 ELSEIF (L1.EQ.20) THEN D3 = 20 ELSEIF (L1.EQ.30) THEN D3 = 30 ELSE D3 = 40 ENDIF
Dans une variable d'algorithme de caractéristique [Attribute algorithm], plusieurs conditions IF peuvent également être placées l'une derrière l'autre.
L'utilisation d'une seule condition IF avec des distinctions de cas ELSEIF conduirait souvent à des solutions beaucoup plus complexes avec beaucoup plus d'ELSEIF.
Structure des conditions à l'aide d'un exemple:
La première condition IF doit contenir une alternative ELSE afin de garantir l'initialisation des variables. Les autres conditions IF peuvent contenir des alternatives ELSE facultatives.
IF (OPZ1.EQ.'-' )THEN LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1.' ELSE LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1./$OPZ1.' ENDIF IF (OPZ2.EQ.'-' )THEN LINAALG = '$LINAALG./' ELSE LINAALG = '$LINAALG./$OPZ2.' ENDIF...
Incorrect: (le premier IF ne contient pas d'ELSE)
IF (OPZ1.NE.'-' )THEN LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1./$OPZ1.' ENDIF IF (OPZ2.NE.'-' )THEN LINAALG = '$LINAALG./$OPZ2.' ENDIF...
Correct également: si le premier énoncé est un énoncé simple sans condition, il n'est pas nécessaire d'utiliser "ELSE", car l'énoncé initialise toujours la variable.
CNSTYPECODE = '$MODEL.$W.-$ST.-$THETA.-$TYPE.-$SPRING.' IF(K.EQ.1)THEN CNSTYPECODE = '$CNSTYPECODE.-K' ENDIF IF(FK.EQ.1)THEN CNSTYPECODE = '$CNSTYPECODE.-FK' ENDIF IF(N.EQ.1)THEN CNSTYPECODE = '$CNSTYPECODE.-N' ENDIF
La première condition, qui est toujours calculée, doit empêcher une boucle sans fin. Les autres "if...endif" appellent toujours la première condition et ajoutent une valeur supplémentaire.
N'utilisez donc pas la variable de l'affectation dans la première condition pour la distinction des cas ELSE.
IF (OPZ1.EQ.'-' )THEN LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1.' ELSE LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1./$OPZ1.' ENDIF IF (OPZ2.EQ.'-' )THEN LINAALG = '$LINAALG./' ELSE LINAALG = '$LINAALG./$OPZ2.' ENDIF...
Incorrect: (différence en rouge)
IF (OPZ1.EQ.'-' )THEN LINAALG = '$IDNR./$CX1./$VL./$MOTX./$OM1./$COEL./$DA./$AP1./$AA1.' ELSE LINAALG = '$LINAALG./$OPZ1.' ENDIF IF (OPZ2.EQ.'-' )THEN LINAALG = '$LINAALG./' ELSE LINAALG = '$LINAALG./$OPZ2.' ENDIF...