如果语句在 jsl 中不起作用大家好。
你能检查一下我的 if 语句有什么问题吗?我想在条件为真的情况下运行几个 jsl 命令(在我的情况下,spec 文件名与代码中写的一样),但它不起作用。
其余一切都运行良好,只有 if 语句运行不正常。
我的JMP版本是18
dt = Current Data Table();
dt << Select Columns( :PARAMETER );
dt << Text To Columns( delimiter( "_" ) );
dt << delete columns( :PARAMETER 1 );
If( :SPECFILE == "MS-SMLD",
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
:PARAMETER 5 << set name( "Column_name4" );
:PARAMETER 6 << set name( "Column_name5" ) ;
,
If( :SPECFILE == "SMLA", Formula(
dt << delete columns( :PARAMETER 5 );
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
)
)
);
谢谢,
雷谢夫
视窗回复:If 语句在 jsl 中不起作用如果您将: SPECFILE 更改为 SPECFILE 可能就足够了( : SPECFILE 通常指的是一列)。
回复:If 语句在 jsl 中不起作用你好。
谢谢!但是“SPECFILE”确实是我的 jmp 表中的一列。
无论如何,我尝试过了,但没有效果。
也许它就是我的 IF 语句中 jsl 命令的分隔符?
或者,也许不可能在一个 IF 语句中运行多个 jsl 命令?
谢谢,
雷谢夫
回复:If 语句在 jsl 中不起作用然后,您必须定义行(例如 Row() = 1;)或使用 For Each Row 循环遍历表中的行。JMP 中的“默认”行是 0,这不是有效的行
回复:If 语句在 jsl 中不起作用如果您要尝试查看“SPECFILE”列中第 1 行的值,然后根据该值做出决策,则下面的 JSL 就是您想要的
Names Default To Here( 1 );
dt = Current Data Table();
dt << Select Columns( :PARAMETER );
dt << Text To Columns( delimiter( "_" ) );
dt << delete columns( :PARAMETER 1 );
If(
:SPECFILE[1] == "MS-SMLD",
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
:PARAMETER 5 << set name( "Column_name4" );
:PARAMETER 6 << set name( "Column_name5" );,
:SPECFILE[1] == "SMLA",
dt << delete columns( :PARAMETER 5 );
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
);