J'ai besoin de mettre des limites dans une colonne de données à partir d'une table séparée.Cette table a un "0" si cette limite particulière n'est pas définie.Ce script fonctionne bien pour charger les limites s'il n'y a pas de limites, ou s'il a les deux limites, mais je n'ai pas réussi à le faire fonctionner lorsqu'il n'y a qu'une seule limite.Il met les deux en laissant la seconde limite fixée à « 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]]
)
)
);J'ai essayé de les mettre un par un. Si le LSL n'est pas "0", mettez à jour le LSL, puis si l'USL n'est pas "0", mettez celui-ci à jour.Le problème avec cela est qu'il écrase le premier s'ils ont tous les deux des limites.En d'autres termes, cette méthode fonctionne pour tous les cas, sauf lorsque LSL et USL existent, mais lorsqu'ils existent tous les deux, le premier est inséré, puis lorsqu'il insère le second, le premier disparaît.J'apprécierais toute aide sur celui-ci. Merci
Que diriez-vous de définir les valeurs 0 sur manquantes avec quelque chose comme ceci :
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"));