Hola,
Intenté escribir un script jsl para leer en los límites de especificación de una tabla a columnas en otra tabla de datos, según las discusiones en esta comunidad. Pegado a continuación está el script, y se adjuntan las tablas correspondientes de datos y límites de especificaciones.
No estoy seguro de lo que estoy haciendo mal, pero cuando compruebo las propiedades de la columna de la tabla de datos después de ejecutar el script, los campos de Límites de especificación todavía están en blanco. ¿Puede alguien decirme qué estoy haciendo mal? Gracias por adelantado.
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
Escribe 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.