Parece que la solicitud original era usar jsl para cargar una tabla de límites en la plataforma Administrar límites de especificaciones y luego guardarla en las propiedades de la columna.A continuación se muestra JSL que hará eso.
dtLimits=New Table( "Limits",
Add Rows( 4 ),
New Column( "Variable",
Character,
"Nominal",
Set Values( {"OZONE", "CO", "SO2", "NO"} )
),
New Column( "_LSL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.075, 5, 0.01, 0.01] )
),
New Column( "_USL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.25, 12, 0.09, 0.04] )
),
New Column( "_Target",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.15, 7, 0.04, 0.025] )
),
New Column( "Show Limits",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1] )
),
New Column( "Importance", Numeric, "Nominal", Format( "Best", 12), Set Values([2,4,1,3])),
New Column( "Units",
Character,
"Nominal",
Set Values( {"lbs", "mi", "in", "ft"} )
),
New Column( "Centerline",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.15, 7, 0.05, 0.025] )
),
New Column( "Sigma",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [.05, 4, 0.03, 0.01] )
),
New Column( "Measurement Sigma",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 5, .5, .8] )
),
New Column( "Lower Tolerance",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.075, 5, 0.01, 0.02] )
),
New Column( "Upper Tolerance",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.25, 12, 0.1, 0.05] )
),
New Column( "Reference",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.15, 7, 0.04, 0.025] )
),
New Column( "Resolution",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.05, 1, 0.08, 0.9] )
),
New Column( "Historical Mean",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0.15, 7, 0.04, 0.025] )
),
New Column( "Historical Process Sigma",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] )
)
);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj=dt<<MANAGE spec="" limits=""></MANAGE>obj << Save to Column Properties;Aquí hay un script simple que creará una tabla de límites que se puede usar para administrar los límites de especificaciones.
Names Default To Here( 1 );
// point to your table that has limits
dt = Data Table( "your table name" );
// Create the new limits table
dtLimit = New Table( "Limits",
New Column( "Variable", character ),
New Column( "LSL" ),
New Column( "USL" ),
New Column( "Target" )
);
// Read through the original table and move to the new limits table
For( i = 1, i <= N Rows( dt ), i++,
dtLimit << add rows( 1 );
dtLimit:Variable[i] = dt:your column name that has the parameter name[i];
dtLimit:LSL[i] = dt:your column name that has the LSL value[i];
dtLimit:USL[i] = dt:your column name that has the USL value[i];
dtLimit:Target[i] = dt:your column name that has the Target value[i];
);
¿Quiere completar Administrar límites de especificaciones desde la tabla de especificaciones o desea establecer límites de especificaciones desde la tabla de especificaciones a la tabla de medidas? No estoy seguro de si puede completar Administrar límites de especificaciones usando la tabla Cargar desde límites mediante secuencias de comandos, pero lo más probable es que haya al menos dos formas de completarlo:
- Agregue límites de especificaciones a las columnas de las tablas de datos de medición como propiedades de columna de la tabla de límites mediante un bucle (y luego abra Administrar límites de especificaciones si es necesario)
- La plataforma Administrar límites de especificaciones es Table Box, por lo que probablemente podría establecer valores allí con algunas secuencias de comandos
Yo usaría la opción 1 porque, en mi opinión, es la opción más sencilla.
Este script debería dar algunas ideas sobre cómo hacer la opción 1:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
<BR />//create spec table
dt_spec = New Table("Limits",
Add Rows(2),
New Column("Variable", Character, "Nominal", Set Values({"height", "weight"})),
New Column("LSL", Numeric, "Continuous", Format("Best", 12), Set Values([50, 49])),
New Column("USL", Numeric, "Continuous", Format("Best", 12), Set Values([150, 151])),
New Column("Target", Numeric, "Continuous", Format("Best", 12), Set Values([100, 101]))
);
//Loop over spec table and look for matches in measurement table
meas_cols = dt << Get Column Names("String");
For Each Row(dt_spec,
If(Contains(meas_cols, :Variable),
Eval(
Eval Expr(
Column(dt, :Variable) << Add Column Properties(
Set Property("Spec Limits", {LSL(Expr(:LSL)), USL(Expr(:USL)), Target(Expr(:Target)), Show Limits(1)})
)
)
)
);
);
//open manage spec limits if needed
dt << Manage Spec Limits(Y(dt_spec[0, "Variable"]));
//Close(dt_spec, no save);