Bonjour… Je souhaite créer plusieurs graphiques de variabilité dans une fenêtre à partir d'une liste contenant les noms de colonnes. J'arrive à exécuter cette opération en temps réel (grâce à l'aide d'autres messages sur le forum JMP). Je souhaite également enregistrer le script dans la table de données afin qu'à la prochaine ouverture, l'utilisateur puisse simplement cliquer sur le triangle vert pour générer la même fenêtre de graphiques. J'y arrive presque : le script enregistre quelque chose dans la table de données, mais la fenêtre de graphiques ne s'affiche pas en cliquant sur le triangle vert. Si je fais un clic droit et que je sélectionne « Modifier » sur le triangle vert, je constate que la fenêtre de graphiques ne s'affiche pas car le script est entièrement entre guillemets. Je ne sais pas comment supprimer les guillemets. Avez-vous une idée ?
Tout d'abord, je crée une chaîne (plotAllStandardExpr) pour créer la nouvelle fenêtre via une série de concaténations dans une boucle for.
2ème la ligne Eval(Parse(plotAllStandardExpr)) créera avec succès la fenêtre avec tous les tracés qu'elle contient.
Mais la ligne Eval(Substitute(....) enregistre simplement la chaîne entre guillemets dans la table de données. J'ai essayé Eval(Parse(plotAllStandardExpr)) dans la fonction Substitute, mais cela n'a pas fonctionné.
Current Data Table(dtSplit_copy);
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
for(i = 1, i <= NItems(plotcols), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i] || "),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ));"
);
plotAllStandardExpr = plotAllStandardExpr ||"))";
Eval(Parse(plotAllStandardExpr));
Eval(Substitute(Expr(dtSplit_copy << New Script("All Var charts", xxxx)),
Expr(xxxx), Eval(plotAllStandardExpr)));
Vous devez utiliser Parse() pour supprimer les guillemets (pas besoin d'Eval() car vous voulez l'expression). Ci-dessous quelques options
Names Default To Here(1);
dt = New Table("");
plotcolsString = {"height", "weight"};
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
For(i = 1, i <= N Items(plotcolsString), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i]
||
"),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ))
,"
);
plotAllStandardExpr = plotAllStandardExpr || "))";
Parse(plotAllStandardExpr);
Eval(EvalExpr(dt << New Script("all var charts", Expr(Parse(plotAllStandardExpr)))));
Eval(Substitute(
Expr(dt << New Script("All Var charts2", _script_)),
Expr(_script_), Parse(plotAllStandardExpr))
);

Merci beaucoup. Les deux options ont fonctionné comme annoncé !