J'ai de nombreuses colonnes avec des limites de spécifications enregistrées dans les propriétés de colonne. J'essaie d'ajouter des lignes de référence à plusieurs graphiques de variabilité dans un groupe de colonnes. Mon problème est que je n'arrive pas à ajouter ces lignes sans parcourir et créer plus de 400 instances d'un graphique de variabilité et les ajouter manuellement. Cela entraîne une utilisation excessive de la mémoire et ralentit, voire plante JMP. La première ligne de référence que je cherche à ajouter peut être suivie de ce code. Ici, l'index i fait référence à la colonne particulière du groupe de colonnes que je parcours :
report(gb)[axis box( 1 )] << Add Ref Line(
{Num(
Substr(
Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[1] ),
5,
Length( Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[1] ) ) - 5
)
), Num(
Substr(
Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[2] ),
5,
Length( Char( As List( Column( As List( DT << Get column Group( "Processes" ) )[i] ) << Get Property( "Spec Limits" ) )[2] ) ) - 5
)
)},
"Solid",
"Light Green",
"",
1,
0.25
);
Vous trouverez ci-dessous comment j'aimerais implémenter ce code, afin de ne pas créer une nouvelle instance d'un graphique de variabilité pour chaque spécification. Je ne sais tout simplement pas comment ajouter des lignes de référence personnalisées au code ci-dessous. Fondamentalement, je souhaite initialement ajouter une plage de lignes de référence qui met en évidence entre LSL et USL en vert clair pour chaque spécification.
open("$SAMPLE_DATA/Semiconductor Capability.jmp");
DT = Current Data Table();
DT << Manage Limits(
Process Variables(
DT << Get Column Group ("Processes")
),
<< Show Limits All,
<< Save to Column Properties,
close window
);
SpecVarCharts = Variability Chart( Y( Column Group( "Processes" ) ), X( :Wafer, :Site ),Connect Cell Means( 1 ), Std Dev Chart(0));
Toute aide serait grandement appréciée.
Obtenez des références aux zones de plan dans le graphique de variabilité et effectuez une boucle sur celles-ci tout en définissant les lignes de référence.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp"); // column properties are already set
varchart = dt << Variability Chart(
Y(Column Group("Processes")),
X(:Wafer, :Site),
Connect Cell Means(1),
Std Dev Chart(0),
invisible
);
obs = varchart << XPath("//OutlineBox[contains(text(), 'Variability Chart for')]");
For Each({ob}, obs,
colname = Substitute(ob << get title, "Variability Chart for ", "");
specs = Column(dt, colname) << Get Property("Spec Limits");
low = specs["LSL"] - 5;
high = specs["USL"] + 5;
ob[AxisBox(1)] << Add Ref Line(low, "Solid", "Light Green", "", 1, 0.25);
ob[AxisBox(1)] << Add Ref Line(high, "Solid", "Light Green", "", 1, 0.25);
);
varchart << Show Window(1);