Ho bisogno di inserire dei limiti in una colonna di dati da una tabella separata.Quella tabella ha uno "0" se quel limite particolare non è impostato.Questo script funziona bene per caricare i limiti se non ci sono limiti o se ha entrambi i limiti, ma non sono stato in grado di farlo funzionare quando c'è un solo limite.Mette entrambi nel lasciare il secondo limite impostato a "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]]
)
)
);Ho provato a metterli uno alla volta. Se l'LSL non è "0", aggiorna l'LSL, se USL non è "0" aggiorna quello.Il problema è che sovrascrive il primo se entrambi hanno dei limiti.In altre parole, questo modo funziona per tutti i casi tranne quando esistono sia LSL che USL, ma quando esistono entrambi inserisce il primo e poi quando inserisce il secondo nel primo scompare.Apprezzerei qualsiasi aiuto su questo. Grazie
Che ne dici di impostare i valori 0 come mancanti con qualcosa del genere:
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"));