如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?我有类似于所附数据表的传入数据。
我愿意(作为例子)
- 将出现在列 Breakdown_5 中的行值(第一个/顶部)与 T5(在 TestStage 下)的行 USL/LSL(在标签下)保存为 Breakdown_5 列属性中的限制,类似地
- 将出现在列中的行值(第一个/顶部)与 S7(在 TestStage 下)的行 USL/LSL(在“标签”下)保存为“阻力”_7 列属性中的限制
- 将 Current_7 列中出现的行值(第一个/顶部)与 S7(在 TestStage 下)的行 USL/LSL(在“标签”下)保存为 Current_7 列属性中的限制
- 将 Current_11 列中出现的行值(第一个/顶部)与 W11(在 TestStage 下)的行 USL/LSL(在“标签”下)保存为 Current_11 列属性中的限制
- 将 Capacitance_6 列中出现(第一个/顶部)的行值与 U6(在 TestStage 下)的行 USL/LSL(在“标签”下)保存为 Capacitance_6 列属性中的限制
一般来说,如何在 JSL 中编写脚本来应用与测量数据列(Breakdown_#、Resistance_#、Current_# 等)下出现(第一个/顶部)的 LSL/USL 行(在标签下)相对应的规格限制on) 对应正确的 TestStage#,其中 # 指的是测试阶段编号。

自动化和脚本编写视窗回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?这是一个适用于您的示例数据的脚本
Names Default To Here( 1 );
dt = Data Table( "exampleDataSummary" );
// Find all numeric columns and place in a list
numColList = dt << get column names( numeric, string );
// Find the unique values of TestStage
Summarize( dt, tstStage = By( :TestStage ) );
// Loop across all test stages and match with response column
stageNumber = "";
For Each( {Stage}, tstStage,
stageNumber = Substr( Stage, 2 );
resCol = "";
For Each( {col}, numColList,
If( Word( -1, col, "_" ) == stageNumber,
resCol = col
);
// Get LSL and USL
If( resCol != "",
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]];
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]];
Show( theLSL, theUSL );
Eval(
Substitute(
Expr(
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ )} )
),
Expr( _LSL_ ), theLSL,
Expr( _USL_ ), theUSL
)
);
);
);
);回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?@tx尼尔森对了谢谢。 该脚本适用于示例数据文件。 我有两个问题。
1.刚刚意识到我的测量参数(列)名称可以采用电阻_Null_Port_7、电容_Full_Plate_6等形式。 当 TestStage 编号末尾之前的列名称中存在多个下划线时,如何更改脚本。 我猜想 Word() 函数的实现需要改变,但我正在努力解决它(以前没有使用它有点令人困惑)。
2. 应用限制后,如何以编程方式为每列启用“显示为图形参考线”? 我知道如何通过管理规格限制 () 手动执行此操作。 我使用的是 JMP 16.2。
回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?请访问脚本索引来查找我在提供的脚本中使用的各种函数的详细信息。正如我所使用的,Word() 函数并不关心名称中有多少个“_”。正如我所使用的,Word() 函数中的第一项是 -1,它指示函数从字符串末尾开始获取第一个单词。
要告诉 JMP 自动将值显示为参考线,请使用规格限规范中的“Show()”参数。
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show(1)} )
请花时间研究我提供的脚本,以帮助您成为一名更高效的脚本编写者。
回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?@tx尼尔森我正在研究您的代码,感谢您解释 Word () 的工作原理。
到目前为止,该脚本不适用于我的实际数据(仅实际列名称有所不同,即带有更多下划线)。
问题是脚本运行时不会对我的实际数据抛出任何错误,并且日志中没有任何内容,这与我在此处附加的示例数据表上运行相同的脚本时不同。 所以我没有什么可以用来调试的。
我已经尝试过 show (1) 来显示启用的限制以编程方式“显示为图形参考线”。 它使用此处发布的示例数据在 JMP 16.2 中对我不起作用。
我会尝试调试脚本,如果发现任何问题,请回复您。 在日志中没有任何内容的情况下获取一些调试指针将很有用。
回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?我的错误,改变吧
显示(1)
到
显示限制(1)
回复:如何编写脚本以根据其他列上的标签将列中出现的规格限制值应用到其自己的属性?@tx尼尔森需要改变
Substr( )
让脚本适用于我的实际数据。 然而,当绘制任何测量参数的分布时,show (1) 仍然不显示限制。
以下内容在我的 JMP16.2 上也不起作用,即显示限制未启用列属性中的“显示为图形参考线”。
dt=Open("$SAMPLE_DATA/Process Measurements.jmp");
Column(dt, "Process 2")<<SET property=""></SET>然而,这确实可以完成工作。
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )})