我目前正在尝试编写一个脚本,该脚本从我的数据表中读取一列,并根据该列的值运行一组不同的函数。 例如,
如果列A = A中的数据,请创建一个名为“ A”的新列,然后运行下面的函数(A至C)。
如果列A = B中的数据,请创建一个名为“ B”的新列,然后运行下面的函数(D到F)。
否则,创建一个新列“ N / A”。
运行脚本时,即使值是“ A”或“ B”,它也将始终创建新列“ N / A”。 它也不会运行我为“ A”和“ B”条件编写的任何功能。 我觉得我缺少一些非常明显的东西。
dt =当前数据表();
如果(
:Column A ==“ A”,dt <<新建Column(“ A”,标称字符),
功能A
功能B
功能C
:Column B ==“ B”,dt <<新建Column(“ B”,标称字符),
功能D
功能E
功能F
dt <<新建列(“ N / A”,字符,标称)
)
如果秘密可能有帮助。 逗号分隔条款在if语句中。 分号单独的语句之内一个子句。
你可能想要这样的东西
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
);我喜欢对**和/ * else * /进行缩进和注释,以使其易于理解。
鉴于您指定的场景,下面的脚本会生成 3 种情况
A 列存在于 A 列中
B 存在于 B 列中
A或B都不存在

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 )
);
这是我的猜测,这不是你想要的