Hola,
Intenté escribir un script jsl para leer los límites de especificaciones de una tabla a columnas en otra tabla de datos, según las discusiones en esta comunidad. A continuación se pega el script y se adjuntan las tablas de límites de especificaciones y datos correspondientes.
No estoy seguro de qué estoy haciendo mal, pero cuando reviso las propiedades de la columna de la tabla de datos después de ejecutar el script, los campos de Límites de especificaciones todavía están en blanco. ¿Alguien puede decirme qué estoy haciendo mal? Gracias de antemano.
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 (tabla de límites de especificaciones):
| Descripción | a | C | d |
| USL | 11 | 25 | 42 |
| LSL | 0 | 1 | 2.5 |
| TT | 5 | 11 | 23 |
prueba1 (tabla de datos):
| a | b | C | d |
| 1 | 3 | 2 | 4 |
| 2 | 6 | 4 | 8 |
| 3 | 9 | 6 | 12 |
| 4 | 12 | 8 | dieciséis |
| 5 | 15 | 10 | 20 |
| 6 | 18 | 12 | 24 |
| 7 | 21 | 14 | 28 |
| 8 | 24 | dieciséis | 32 |
| 9 | 27 | 18 | 36 |
| 10 | 30 | 20 | 40 |
Eche un vistazo al complemento de intercambio de archivos llamado
Escribir Límites a una tabla de datos desde un Límites Mesa . El formato asumido de la tabla de datos de límites de entrada es diferente a su estructura especificada; sin embargo, puede cambiar fácilmente su estructura o modificar el JSL desde el complemento.