Wenn Sie die Buttons | | verwenden, sind Sie auf der sicheren Seite, dass beim Erstellen der Formel korrekte Syntax verwendet wird.
- Dieser Button überträgt lediglich die unter Name angezeigte Variable ins Eingabefeld. 
- Ein durch eine IF-Bedingung aufgebauter Algorithmus kann wie folgt aussehen: - IF ( ) THEN D3 = ELSE D3 = ENDIF - Zwischen den Klammern () geben Sie Ihre Bedingung ein (z.B. "L1.EQ.10"). Hier im Beispiel ist "D3" die in der Variablenliste selektierte Variable. - Hinter THEN D3 = geben Sie den Wert ein, den D3 annehmen soll, wenn die Bedingung erfüllt wird. - Hinter ELSE D3 = steht der Wert für D3, falls die Bedingung nicht erfüllt wird. Mit ENDIF beschließen Sie die Bedingung. - IF (L1.EQ.10) THEN D3 = 20 ELSE D3 = 30 ENDIF 
- ELSEIF ( ) THEN <selektierte Variable> = - Sollen Fallunterscheidungen getroffen werden, kann mit ELSEIF-Anweisungen gearbeitet werden. - 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 
- Innerhalb einer Merkmalalgorithmus [Attribute algorithm]-Variablen können auch mehrere IF-Bedingungen hintereinander geschaltet werden. - Die Verwendung einer einzigen IF-Bedingung mit ELSEIF-Fallunterscheidungen würde oft zu viel aufwändigeren Lösungen mit viel mehr ELSEIFs führen. - Aufbau der Bedingungen anhand eines Beispiels: - Die erste IF-Bedingung muss eine ELSE-Alternative enthalten, damit die Initialisierung der Variablen sichergestellt ist. Die übrigen IF-Bedingungen können optional ELSE-Alternativen enthalten. - 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... - Nicht korrekt: (Das erste IF enthält kein 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... - Ebenfalls korrekt: Wenn als erstes ein einfaches Statement ohne Bedingung steht, kann auf ein "ELSE" ganz verzichtet werden, da das Statement die Variable immer initialisiert. - 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 
- Die erste Bedingung, die immer berechnet wird, muss eine Endlos-Schleife verhindern. Weitere "if...endif" rufen immer die erste Bedingung auf und fügen einen zusätzlichen Wert an. - Verwenden Sie daher in der ersten Bedingung für die ELSE-Fallunterscheidung nicht die Variable der Zuweisung. - 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... - Nicht korrekt: (Unterschied in rot) - 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...
 

!["Merkmalalgorithmus [Attribute algorithm]" Dialogfenster](https://webapi.partcommunity.com/service/help/latest/pages/de/ecatalogsolutions/doc/resources/img/img_eaf0d6f55c5b48438d2311bf4918eb4c.png)
![[Hinweis]](https://webapi.partcommunity.com/service/help/latest/pages/de/ecatalogsolutions/doc/images/note.png)




