Salut,
J'ai essayé d'écrire un script jsl pour lire les limites des spécifications d'une table vers les colonnes d'une autre table de données, sur la base des discussions de cette communauté. Le script est collé ci-dessous et les tableaux de données et de limites de spécifications correspondants sont joints.
Je ne suis pas sûr de ce que je fais de mal, mais lorsque je vérifie les propriétés de colonne de la table de données après avoir exécuté le script, les champs Limites de spécifications sont toujours vides. Quelqu'un peut-il me faire savoir ce que je fais de mal ? Merci d'avance.
Names Default To Here( 1 );
dt = Open("test1.jmp");
dt1 = Open("test1_spec.csv");
dt << current data table ();
x = dt << Get Column Names(string);
y = dt1 << Get Column Names(string);
ncols = N Items (x);
for (i=1, i<=ncols, i++,
v = Column(i) << Get Name;
z = (Loc(y,v)) [1];
dt1 << current data table();
uLimit = Column(z)[1];
lLimit = Column(z)[2];
tLimit = Column(z)[3];
dt << current data table ();
Eval(
Eval Expr(
Column(dt,char(x[i])) << Set Property(
"Spec Limits",
{LSL( Expr( lLimit ) ), USL( Expr( uLimit ) ), Target( Expr( tLimit ) ),
Show Limits( 1 )}
)
)
)
);test_spec (tableau des limites des spécifications) :
| Description | un | c | d |
| USL | 11 | 25 | 42 |
| LSL | 0 | 1 | 2.5 |
| TT | 5 | 11 | 23 |
test1 (tableau de données) :
| un | b | c | d |
| 1 | 3 | 2 | 4 |
| 2 | 6 | 4 | 8 |
| 3 | 9 | 6 | 12 |
| 4 | 12 | 8 | 16 |
| 5 | 15 | dix | 20 |
| 6 | 18 | 12 | 24 |
| 7 | 21 | 14 | 28 |
| 8 | 24 | 16 | 32 |
| 9 | 27 | 18 | 36 |
| dix | 30 | 20 | 40 |
Jetez un œil au complément File Exchange appelé
Écrire Limites à une table de données à partir d'un Limites Tableau . Le format supposé du tableau de données des limites d'entrée est différent de votre structure spécifiée. Cependant, vous pouvez facilement modifier votre structure ou modifier le JSL à partir du complément.