Hilfe bei der If-AnweisungIch versuche derzeit, ein Skript zu schreiben, das eine Spalte aus meiner Datentabelle liest und je nach Wert dieser Spalte unterschiedliche Funktionen ausführt. Beispielsweise,
Wenn die Daten in Spalte A = A sind, erstellen Sie eine neue Spalte mit dem Namen "A" und führen Sie die folgenden Funktionen (A bis C) aus.
Wenn die Daten in Spalte A = B sind, erstellen Sie eine neue Spalte mit dem Namen "B" und führen Sie stattdessen die folgenden Funktionen (D bis F) aus.
Andernfalls erstellen Sie eine neue Spalte mit dem Namen "N / A".
Wenn ich mein Skript ausführe, wird immer die neue Spalte "N / A" erstellt, auch wenn der Wert "A" oder "B" ist. Es werden auch keine der Funktionen ausgeführt, die ich für die Bedingungen "A" und "B" geschrieben habe. Ich habe das Gefühl, dass mir etwas sehr Offensichtliches fehlt.
dt = Aktuelle Datentabelle ();
Wenn(
: Spalte A == "A", dt << Neue Spalte ("A", Zeichen, nominal),
Funktion A.
Funktion B.
Funktion C.
: Spalte B == "B", dt << Neue Spalte ("B", Zeichen, nominal),
Funktion D.
Funktion E.
Funktion F.
dt << Neue Spalte ("N / A", Zeichen, nominal)
)
SkriptingBetreff: Hilfe bei der If-AnweisungWenn Geheimnisse könnte helfen. Kommas trennen die Klauseln in einer if-Anweisung. Semikolons trennen Anweisungen innerhalb Eine Klausel.
Sie wollen wahrscheinlich so etwas
dt = Current Data Table();
If( :Column A == "A", // condition, followed by a comma
dt << New Column( "A", character, nominal ); // one or more stmts
Function A(); // with ; separators
Function B();
Function C(); // last statement has optional ; and required comma next line
, /* else if */ :Column B == "B", // 2nd condition followed by comma
dt << New Column( "B", character, nominal );
Function D();
Function E();
Function F() // again, another comma. ; ommited for example...I prefer to use them
, /* else */
dt << New Column( "N/A", character, nominal ) // no more commas, this is the otherwise
);Ich mag es, das / * else einzurücken und zu kommentieren, wenn * / und / * else * /, um das Verfolgen zu erleichtern.
Re: Hilfe bei der If-AnweisungIn Anbetracht der von Ihnen angegebenen Szenarien generiert das folgende Skript die 3 Fälle
A existiert in Spalte A
B existiert in Spalte B
Weder A noch B existieren

Names Default To Here( 1 );
A = Function( {},
Show( "Function A" )
);
B = Function( {},
Show( "Function B" )
);
C = Function( {},
Show( "Function C" )
);
D = Function( {},
Show( "Function D" )
);
EE = Function( {},
Show( "Function EE" )
);
F = Function( {},
Show( "Function F" )
);
// First Example Column A has the value A
dt1 = New Table( "Example1",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {"A"} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {""} ) )
);
Wait( 5 );
If(
:Column A[1] == "A",
dt1 << New Column( "A", character, nominal );
A();
B();
C();,
:Column B[1] == "B", dt1 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt1 << New Column( "N/A", character, nominal )
);
// Second Example Column B has the value B
dt2 = New Table( "Example2",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {""} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {"B"} ) )
);
Wait( 5 );
If(
:Column A[1] == "A",
dt2 << New Column( "A", character, nominal );
A();
B();
C();,
:Column B[1] == "B", dt2 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt2 << New Column( "N/A", character, nominal )
);
// Third Example Neither column A has and A nor Column B has a B
dt3 = New Table( "Example3",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {""} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {""} ) )
);
Wait( 5 );
If(
dt3:Column A[1] == "A",
dt3 << New Column( "A", character, nominal );
A();
B();
C();,
dt3:Column B[1] == "B", dt3 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt3 << New Column( "N/A", character, nominal )
);
Ich vermute, das ist nicht das, was du willst