Salut,
J'ai essayé d'écrire un script jsl pour lire dans les limites de spécification d'une table aux colonnes d'une autre table de données, sur la base des discussions de cette communauté. Le script est collé ci-dessous, et les tables de limites de données et de spécifications correspondantes sont jointes.
Je ne sais pas ce que je fais de mal, mais lorsque je vérifie les propriétés de la colonne de la table de données après avoir exécuté le script, les champs Spec Limits sont toujours vides. Quelqu'un peut-il s'il vous plaît me faire savoir ce que je fais 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) :
| La description | un | c | ré |
| USL | 11 | 25 | 42 |
| LSL | 0 | 1 | 2.5 |
| TT | 5 | 11 | 23 |
test1 (tableau de données):
| un | b | c | ré |
| 1 | 3 | 2 | 4 |
| 2 | 6 | 4 | 8 |
| 3 | 9 | 6 | 12 |
| 4 | 12 | 8 | 16 |
| 5 | 15 | dix | 20 |
| 6 | 18 | 12 | 24 |
| sept | 21 | 14 | 28 |
| 8 | 24 | 16 | 32 |
| 9 | 27 | 18 | 36 |
| dix | 30 | 20 | 40 |
Jetez un œil au complément d'échange de fichiers appelé
Écrire Limites à une table de données à partir d'un Limites Table . Le format supposé de la table de données des limites d'entrée est différent de votre structure spécifiée, cependant, vous pouvez facilement changer votre structure ou modifier le JSL à partir de l'addin