你好,
我正在尝试自动设置列的规格限值。似乎使用硬编码值可以轻松完成此过程,但当您将规格限值输入为变量时不起作用。因此这有效:
Column(4) << Set Property("Spec Limits", {LSL(0), USL(1), Show Limits(1)});

但事实并非如此:
lowerLimit = 0;
upperLimit = 1;
Column(4) << Set Property("Spec Limits", {LSL(lowerLimit), USL(upperLimit), Show Limits(1)});
有人知道怎么解决这个问题吗?谢谢。
最好的,
卡奥蒂克拉马
JMP 列表可以是任何内容,因此当您在列表中指定诸如 upperLimit 之类的内容时,JMP 会假定您想要的正是该列表。要告诉 JMP 处理列表中的内容,您可以在创建列表之前执行以下操作
Names Default To Here( 1 );
lowerLimit = 0;
upperLimit = 1;
Eval(
Eval Expr(
Column( 4 ) << Set Property(
"Spec Limits",
{LSL( Expr( lowerLimit ) ), USL( Expr( upperLimit ) ), Show Limits( 1 )}
)
)
);@txnelson的回答很完美;但是,当处理规格限制时,脚本平台提供了更简单、更通用的解决方案。
在此示例中,从脚本索引(搜索“加载限制”或“保存到列属性”)首先创建了一个限制表。您可能已经创建了此表(或矩阵)。
打开目标数据表后,然后使用管理限制平台从定义的限制表中加载限制,然后将限制保存到目标数据表中。
;</CODE> <BR /><CODE class=" language-jsl">Names Default To Here( 1 );<BR />//First construct a table of limits for the example
dtLimits = New Table( "Cities Limits",Add Rows( 4 ),
New Column( "Process",Character,Set Values( {"OZONE", "CO", "SO2", "NO"} )),
New Column( "LSL", Numeric, Set Values( [0, 0, 0, 0] ) ),
New Column( "Target",Numeric,Set Values( [0.2, 15, 0.05, 0.035] )),
New Column( "USL",Numeric,Set Values( [0.4, 30, 0.1, 0.07] )),
Set Label Columns( :Process ));<BR /><BR />//Open the target data table to act on
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
<BR />//Script the Mangae Limits Platform<BR />obj = dt << Manage Limits(Process Variables( :OZONE, :CO, :SO2, :NO ));
obj << Load From Limits Table( dtLimits ); <BR />obj << Save to Column Properties;<BR />obj << Close Window