Sens UniqueMon script contient une liste de valeurs Y à tracer. J'ai une boîte de dialogue pour sélectionner les colonnes "X" et "By" pour le tracé OneWay. Je souhaite ensuite formater les paramètres de l'axe, mais il nomme les tracés "Oneway Analysis of Y1" suivi de la colonne de l'axe X, par exemple "By Wafer", puis de la valeur By, par exemple "Lot=1234"... . au total, ce serait "Oneway Analysis of Y1 By Wafer Lot=1234"
Existe-t-il un moyen d'intégrer cela dans la clause Dispatch afin que je puisse automatiser le formatage des axes ?
list_y = { "Y1", "Y2" };
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ));
if(dlg["Button"] == 1,
xCol = dlg["x"];);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ));
if(dlg["Button"] == 1,
byCol = dlg["by"]);
OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ),
SendToReport(
Dispatch({"Oneway Analysis of Y1"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )}),
Dispatch({"Oneway Analysis of Y2"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )})
));Re : Aller simpleIl vous sera peut-être plus facile d'appliquer le formatage dans le cadre des propriétés de colonne dans la table de données, si cela ne vous dérange pas que tous les tracés (et la table de données) utilisent le même format pour chaque colonne.
Re : Aller simpleVous pouvez utiliser XPath pour examiner également le titre de la zone de contour afin de déterminer quelle réponse est tracée, puis définir de manière conditionnelle les paramètres d'axe pour la réponse correspondante. Cela devient assez compliqué avec 20 à 40 réponses potentielles.Re : Aller simpleMerci! C'est une fonctionnalité vraiment intéressante dont je n'étais pas au courant.
Dans mon code, j'ai entre 20 et 40 colonnes à tracer dans la liste y, et elles ont des besoins différents en matière de format d'axe y. Votre solution est parfaite pour mettre à jour tout le même format, la méthodologie ci-dessous peut-elle se prêter à un formatage spécifique de parcelles individuelles ?
Re : Aller simpleUtilisez XPath pour sélectionner tous les objets Oneway, puis envoyez le message Dispatch à tous en même temps.Je n'ai pas vos données, mais cela a fonctionné à merveille sur les données Big Class dans l'exemple de bibliothèque de données, même si vous avez une variable By.Cela *devrait* fonctionner directement :
list_y = {"Y1", "Y2"};
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ) );
If( dlg["Button"] == 1,
xCol = dlg["x"]
);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ) );
If( dlg["Button"] == 1,
byCol = dlg["by"]
);
//Name the oneway analysis object 'tmp'
tmp = OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ) );
//get the window containing the one-way analysis
win = tmp << report;
//Select all the oneway objects and alter all the y-axes
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);
Voici un autre exemple avec Big Class :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = (dt << Oneway( Y( {:height, :weight} ), X( :age ), By(:Sex) )) << Report;
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);