Bonjour,
Voici une représentation du script qui me pose problème :
For(l = 0, l <= n, l++, Dispatch({"Normal Quantile Plot"}, "2", ScaleBox, {Format("Best", 6), AddRefLine(l/100, "Dotted", "Black", Char(l) || "/100", 1), ) ) ) ); rep = Eval(EvalExpr(ow)) << Report;n = 100;
ow = Expr(
OneWay(Y(colPara), X(splitPara),
MeansAndStdDev(0), AllGraphs(0), LineOfFit(0), StdDevLines(1), Legend(1), PlotQuantileByActual(1),
SendToReport(
Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")}),<BR /><CODE class="language-jsl">
J'essaie donc de créer un graphique à une seule direction (OneWay-Plot) enregistré dans une expression qui sera évaluée ultérieurement et transformée en rapport.
Le premier envoi remplit sa fonction :
Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")})
Cependant, la boucle For ne fonctionne pas et je pense que cela a quelque chose à voir avec la façon dont JMP gère les variables d'exécution en combinaison avec le fonctionnement d'Expr/Eval.
</CODE></PRE>
<P><CODE class="language-jsl">
Existe-t-il une solution ou une alternative à ce problème ?
Cordialement 
For(l = 0, l <= n, l++, <BR /> Dispatch({"Normal Quantile Plot"}, "2", ScaleBox, {Format("Best", 6), AddRefLine(l/100, "Dotted", "Black", Char(l) || "/100", 1),<BR />)
Je créerais une fonction pour cela et, à l'intérieur de cette fonction, je déplacerais la boucle For en dehors de la zone d'exécution de la plateforme.
Je pense que quelque chose comme ça pourrait fonctionner (il existe de nombreuses autres options).
Names Default To Here(1);
create_oneway = Function({dt, colpara, splitpara, n = 100}, {Default Local},
ow = dt << OneWay(
Y(Eval(colPara)),
X(Eval(splitPara)),
MeansAndStdDev(0),
AllGraphs(0),
LineOfFit(0),
StdDevLines(1),
Legend(1),
PlotQuantileByActual(1)
);
rep = ow << report;
For(l = 0, l <= n, l++,
rep << Dispatch(
{"Normal Quantile Plot"}, "2", ScaleBox,
{
Format("Best", 6),
Add Ref Line(l/100, "Dotted", "Black", Char(l) || "/100", 1)
}
);
);
rep << Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")});
return(ow);
);
dt = open("$SAMPLE_DATA/Big Class.jmp");
ow = create_oneway(dt, "weight", "age");
Write();
Vous pourriez utiliser Expr, mais dans ce cas, je construirais l'expression à partir de plusieurs parties différentes.