powered by CADENAS

Manual

Manual

7.8.12.4.2. IF-Bedingung: Defaultwert "Forciert" oder "Standard"

Das folgende Beispiel zeigt, wie mittels einer Wertebereichsvariablen (hier SEL "Selector") eine andere Wertebereichsvariable gesteuert wird, und zwar einmal mit einer Standard IF-Bedingung (hier TFW "Standard") und einmal forciert (hier TFWF "Forced").

Beispiel in PARTdesigner

Beispiel in PARTdesigner

Beim Laden der Tabelle werden die Startwerte angezeigt. Der Startwert ist repräsentiert durch den ersten in der Formel gesetzten Parameter. Beim Selektor ist dies 1, bei TFW (TMA) und TFWF (TMAF) aufgrund der gesetzten Bedingung der Wert "alpha".

Beispiel in PARTdataManager: Standardwerte geladen

Beispiel in PARTdataManager: Standardwerte geladen

Merkmalalgorithmus TMA mit Standard IF-Bedingung

IF (SEL.EQ.1)THEN
 TMA = '''a'',''alpha'',''b'',''beta'',''c'',''gamma'''
ELSEIF(SEL.EQ.2)THEN
 TMA = '''b'',''beta'',''a'',''alpha'',''c'',''gamma'''
ELSEIF(SEL.EQ.5)THEN
 TMA = '''xy'',''xy'''
ELSE
 TMA = '''c'',''gamma'',''a'',''alpha'',''b'',''beta'''
ENDIF
Merkmalalgorithmus TMAF mit IF-Bedingung + forciertem Setzen eines Wertes

[Hinweis] Hinweis

Bei forciertem Setzen wird der Startwert (erster Wert in spitzen Klammern) bei jedem Laden der Tabelle immer wieder neu gesetzt.

Korrektes Beispiel:

IF (SEL.EQ.1)THEN
 TMAF = '<''a'',''alpha''>,''b'',''beta'',''c'',''gamma'''
ELSEIF(SEL.EQ.2)THEN
 TMAF = '<''b'',''beta''>,''a'',''alpha'',''c'',''gamma'''
ELSEIF(SEL.EQ.5)THEN
 TMAF = '<''xy'',''xy''>'
ELSE
 TMAF = '<''c'',''gamma''>,''a'',''alpha'',''b'',''beta'''
ENDIF

Standardmäßig wird der Startwert (der erste Wert) nur einmalig initial beim Laden der Tabelle gesetzt, außer der neue Startwert ist nicht im aktuell gesetzten Wertebereich enthalten.

Wenn Sie einen Wert forciert setzen möchten, beachten Sie Folgendes:

  1. Der Wert muss als erstes Parameterpaar gesetzt sein.

  2. Das Parameterpaar muss in spitze Klammern gesetzt werden.

  3. Es ist empfohlen, einen forcierten Wert in jeder Bedingung zu setzen oder in keiner, da das Verhalten ansonsten verwirrend sein könnte.

    Beispiel: Hier wurde in der zweiten Bedingung kein forcierter Wert gesetzt, was eben nicht empfohlen ist.

    IF (SEL.EQ.1)THEN
    TMAF = '<''a'',''alpha''>,<''b'',''beta''>,''c'',''gamma'''
    ELSEIF(SEL.EQ.2)THEN
    TMAF = '''b'',''beta'',''a'',''alpha'',''c'',''gamma'''
    ELSEIF(SEL.EQ.5)THEN
    TMAF = '<''xy'',''xy''>'
    ELSE
    TMAF = '<''c'',''gamma''>,''a'',''alpha'',''b'',''beta'''
    ENDIF
    

Beschreibung des Verhaltens im PARTdataManager (bzw. PARTdesigner Tabelle):

  • Beim Öffnen der Tabelle wird Selektor 1 als Startwert geladen (1 ist der erste Wert unter Formel) und damit der Bedingung folgend in TFW (TMA) und TFWF (TMAF) der Wert "alpha".

  • Beim Setzen von Selektor 2 wechseln die Werte von TFW und TFWF auf "beta".

  • Wird nun der Selektor wieder auf 1 gesetzt, ändert sich nur der Wert von TFWF. TFW ändert sich nicht mehr.

    [Hinweis] Hinweis

    Dies zeigt den Unterschied zwischen standardmäßigem und forciertem Setzen. Bei forciertem Setzen wird der Startwert (erster Wert in spitzen Klammern) immer wieder neu gesetzt. Mit Standard IF-Bedingung nicht, außer der neue Startwert ist nicht im aktuell gesetzten Wertebereich enthalten.

  • Wird dagegen der Selektor nun auf 5 gesetzt, ändern sich sowohl TFW als auch TFWF.

    [Hinweis] Hinweis

    Der Grund hierfür ist, dass der Wert "xy" im aktuell gesetzten Wertebereich nicht vorkommt. In diesem Fall ändert sich der Wert auch ohne forciertes Setzen.

    Mit Selektor 1 ändern sich aus demselben Grund wieder beide Werte.

  • Setzen Sie nun TFW und FFWF manuell auf den Wert "beta" und ändern Sie den Selektor auf 3.

    Ergebnis: Keine Änderung, weder bei TFW noch bei TFWF.

    [Hinweis] Hinweis

    Der Wertebereich von Selektor 3 deckt den manuell gesetzten Wert ab. Daher findet keine Änderung statt.

  • Setzen Sie nun den Selektor auf 5, wird der neue Wert gesetzt.

    [Hinweis] Hinweis

    Der Grund hierfür ist, dass der Wert "xy" im aktuell gesetzten Wertebereich nicht vorkommt.

[Hinweis] Hinweis

Für den Selektor kann genauso eine Zahlenvariable verwendet werden.

IF (SEL.EQ.1)THEN
 NMA = '<1,''alpha''>,2,''beta'',3,''gamma'''
ELSEIF(SEL.EQ.2)THEN
 NMA = '<2,''beta''>,1,''alpha'',3,''gamma'''
ELSE
 NMA = '<3,''gamma''>,1,''alpha'',2,''beta'''
ENDIF