Ayuda con la declaración IfActualmente estoy tratando de escribir un script que lea una columna de mi tabla de datos y ejecute un conjunto diferente de funciones según el valor de esa columna. Por ejemplo,
Si los datos en la Columna A = A, cree una nueva columna llamada "A" y ejecute las funciones (A a C) a continuación.
Si los datos en la Columna A = B, cree una nueva columna llamada "B" y ejecute las funciones (D a F) a continuación en su lugar.
De lo contrario, cree una nueva columna llamada "N / A".
Cuando ejecuto mi script, siempre creará la nueva columna "N / A" incluso si el valor es "A" o "B". Tampoco ejecutará ninguna de las funciones que he escrito para las condiciones "A" y "B". Siento que me estoy perdiendo algo muy obvio.
dt = Tabla de datos actuales ();
Si(
: Columna A == "A", dt << Nueva columna ("A", carácter, nominal),
Función A
Función B
Función C
: Columna B == "B", dt << Nueva columna ("B", carácter, nominal),
Función D
Función E
Función F
dt << Nueva columna ("N / A", carácter, nominal)
)
ScriptingRe: Ayuda con la declaración IfSi secretos podría ayudar. Las comas separan el cláusulas en una declaración if. Punto y coma declaraciones separadas dentro una cláusula.
Probablemente quieras algo como esto
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
);Me gusta sangrar y comentar el / * else if * / y / * else * / para que sea más fácil de seguir.
Re: Ayuda con la declaración IfDados los escenarios que especificó, el siguiente script genera los 3 casos
A existe en la columna A
B existe en la columna B
Ni A ni B existen

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 )
);
Supongo que esto no es lo que quieres