Il semble que la demande initiale consistait à utiliser jsl pour charger un tableau de limites dans la plate-forme Gérer les limites des spécifications, puis à l'enregistrer dans les propriétés de la colonne.Ci-dessous se trouve JSL qui fera cela.
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;Voici un script simple qui créera un tableau de limites pouvant être utilisé pour gérer les limites des spécifications.
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];
);
Souhaitez-vous renseigner Gérer les limites de spécifications à partir du tableau de spécifications ou souhaitez-vous définir des limites de spécifications du tableau de spécifications au tableau de mesures ? Je ne sais pas si vous pouvez remplir les limites de gestion des spécifications en utilisant la table Charger à partir des limites par script, mais il existe probablement au moins deux façons de la remplir autrement :
- Ajoutez des limites de spécifications aux colonnes des tables de données de mesure en tant que propriétés de colonne à partir du tableau des limites en effectuant une boucle (puis ouvrez Gérer les limites des spécifications si nécessaire)
- La plate-forme Gérer les limites des spécifications est Table Box, vous pouvez donc y définir des valeurs très probablement avec des scripts
J'utiliserais l'option 1 car c'est à mon avis l'option la plus simple.
Ce script devrait donner quelques idées sur la façon de réaliser l'option 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);