별도의 테이블에서 데이터 열에 제한을 넣어야 합니다.특정 제한이 설정되지 않은 경우 해당 테이블에는 "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"));