我需要将限制从单独的表中放入数据列。如果未设置该特定限制,则该表具有“0”。如果没有限制,或者如果它有两个限制,这个脚本可以很好地加载限制,但是当只有一个限制时我无法让它工作。它将第二个限制设置为“0”。
//set limits
If( db_Tests:MinLimit[TestRow[1]] != 0 | db_Tests:MaxLimit[TestRow[1]] != 0,
Eval(
Substitute(
Expr(
col << set property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), db_Tests:MinLimit[TestRow[1]]
,
Expr( _U ), db_Tests:MaxLimit[TestRow[1]]
)
)
);我试着一次把它们放在一起。 如果 LSL 不是“0”,则更新 LSL,如果 USL 不是“0”,则更新该 LSL。问题是如果它们都有限制,它会覆盖第一个。换句话说,这种方式适用于所有情况,除非 LSL 和 USL 都存在,但是当它们都存在时,它将第一个放入,然后当它把第二个放入第一个时消失。我将不胜感激任何帮助。 谢谢
如何将 0 值设置为缺失,如下所示:
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(2),
Compress File When Saved(1),
New Column("col", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2]))
);
//both
minVal = 1;
maxVal = 2;
Eval(
Substitute(
Expr(
dT:col << set property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), If(minVal == 0, ., minVal)
,
Expr( _U ), If(maxVal == 0, ., maxVal)
)
);
Show(dt:col << Get Property("Spec Limits"));
//missing maxval
minVal = 1;
maxVal = .;
Eval(
Substitute(
Expr(
dT:col << set property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), If(minVal == 0, ., minVal)
,
Expr( _U ), If(maxVal == 0, ., maxVal)
)
);
Show(dt:col << Get Property("Spec Limits"));
//maxval 0
minVal = 1;
maxVal = 0;
Eval(
Substitute(
Expr(
dT:col << set property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), If(minVal == 0, ., minVal)
,
Expr( _U ), If(maxVal == 0, ., maxVal)
)
);
Show(dt:col << Get Property("Spec Limits"));