現在、データテーブルから列を読み取り、その列の値に応じて異なる関数のセットを実行するスクリプトを作成しようとしています。 例えば、
列A = Aのデータの場合、「A」という名前の新しい列を作成し、以下の関数(AからC)を実行します。
列A = Bのデータの場合、「B」という名前の新しい列を作成し、代わりに以下の関数(DからF)を実行します。
それ以外の場合は、「N / A」という新しい列を作成します。
スクリプトを実行すると、値が「A」または「B」であっても、常に新しい列「N / A」が作成されます。 また、「A」および「B」条件用に作成した関数も実行されません。 非常に明白な何かが欠けているような気がします。
dt =現在のデータテーブル();
If(
:Column A == "A"、dt << New Column( "A"、character、nominal)、
機能A
機能B
関数C
:Column B == "B"、dt << New Column( "B"、character、nominal)、
機能D
機能E
関数F
dt << New Column( "N / A"、character、nominal)
)。
秘密なら役立つかもしれません。 カンマは条項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 if * /と/ * 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 )
);
私の推測ですが、これはあなたが望むものではありません