Comment enregistrer la fenêtre des benchmarks dans la table de données ?Salut !
Grâce à ce script je génère une fenêtre de BenchMarks sur jmp et j'aimerais la sauvegarder dans la table de données (comme si je faisais "enregistrer le script dans la table de données") Le problème est que la fin de mon script ne fonctionne pas !!
// Ouvrir la table de données
dt = Open(fichier1);
// Initialiser une liste pour stocker les noms des colonnes avec la note "INGOT CHARACTERISTICS"
cols_with_note = {};
// Parcourir chaque colonne de la table par index
For(i = 1, i <= N Cols(dt), i++,
col = Column(dt, i);
// Vérifier si la colonne a une note "INGOT CHARACTERISTICS"
If(col << Get Property("Notes") == "INGOT CHARACTERISTICS",
// Ajouter le nom de la colonne à la liste
Insert Into(cols_with_note, col << Get Name)
);
);
Print(
"Colonnes avec notes trouvées pour la famille " || "INGOT CHARACTERISTICS" || " : " ||
Char(cols_with_note) || "\n"
);
// Créer une nouvelle fenêtre pour regrouper tous les graphiques
report_window = New Window("BenchMarks_Ingot_Characteristics",
V List Box(
Fit Group(
For(i = 1, i <= N Items(cols_with_note), i++,
col_name = cols_with_note[i];
// Ajouter le graphique Oneway au Fit Group
Oneway(
Y(Column(dt, col_name)),
X(Column(dt, selection)),
Quantiles(1),
Means and Std Dev(1),
Box Plots(1),
Mean Error Bars(1),
Std Dev Lines(1),
X Axis Proportional(0),
Grand Mean(0),
SendToReport(
Dispatch({}, "Oneway Plot", FrameBox,
{DispatchSeg(
Box Plot Seg(1),
{Confidence Diamond(0), Shortest Half Bracket(0),
Line Color("Red")}
)}
)
)
);
)
)
)
);
// Enregistrer la fenêtre dans le fichier de données
report_window << Save Script to Data Table(
dt, // Spécifie la table de données
"BenchMarks_Ingot_Characteristics", // Nom de la fenêtre pour enregistrer
);
Modifier 2024-08-12 jthi, Ajout du formatage JSL
Automatisation et scriptsAccès aux donnéesExploration et visualisation des donnéesRe : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Lorsque vous publiez du code JSL sur la communauté JMP, veuillez utiliser le format JSL. Vous pouvez l'ajouter avec
.
Concernant votre question, quelle version de JMP utilisez-vous ?
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Voici deux options qui pourraient vous convenir. L'option 2 est généralement plus simple à utiliser, mais le script qu'elle crée est plus difficile à modifier dans le tableau.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
sel = "SITE";
cols = Left(dt << Get Column Names("Continuous", "String"), 10);
// Option1
ow_expr = EvalExpr(dt << Oneway(
Y(Eval(Expr(cols))),
X(Eval(Expr(sel))),
Quantiles(1),
Means and Std Dev(1),
Box Plots(1),
Mean Error Bars(1),
Std Dev Lines(1),
X Axis Proportional(0),
Grand Mean(0),
SendToReport(
Dispatch({}, "Oneway Plot", FrameBox,
{DispatchSeg(
Box Plot Seg(1),
{Confidence Diamond(0), Shortest Half Bracket(0),
Line Color("Red")}
)}
)
)
));
Eval(EvalExpr(
dt << New Script("Plots", Expr(Name Expr(ow_expr)));
));
dt << Run Script("Plots"); // if you want to leave it open
// Option2
ows = dt << Oneway(
Y(Eval(cols)),
X(Eval(sel)),
Quantiles(1),
Means and Std Dev(1),
Box Plots(1),
Mean Error Bars(1),
Std Dev Lines(1),
X Axis Proportional(0),
Grand Mean(0),
SendToReport(
Dispatch({}, "Oneway Plot", FrameBox,
{DispatchSeg(
Box Plot Seg(1),
{Confidence Diamond(0), Shortest Half Bracket(0),
Line Color("Red")}
)}
)
)
);
ows[1] << Save Script for All Objects To Data Table("Plot2");Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?J'ai fait une boucle pour avoir tous mes repères dans un seul Fit Group et j'aimerais enregistrer tout ce Fit Group dans une seule fenêtre, le script que vous m'avez envoyé n'a pas fonctionné pour moi:(
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Quel est le problème avec le script que je vous ai fourni ? Vous ne m'avez pas indiqué quelle version de JMP vous utilisez, il se peut donc que cela ne fonctionne pas pour toutes les versions de JMP (je n'ai accès qu'à JMP17 et JMP18).
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Il n'a pas enregistré les repères dans mon fichier1 je ne sais pas pourquoiRe : Comment enregistrer la fenêtre des benchmarks dans la table de données ?J'utilise jmp 16Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?De plus le script que tu m'envoies n'inclut pas la boucleRe : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Si la boucle n'est pas nécessaire (peut-être avec JMP16), pourquoi en utiliser une ? Car avec mes scripts précédents, vous obtenez des résultats comme celui-ci (dans JMP18)

Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Jarmo,
J'ai exécuté votre script dans JMP 16 et les deux options ont fonctionné comme prévu, en enregistrant les scripts dans la table de données d'origine.
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Je ne comprends pas pourquoi la boucle n'est pas nécessaire lorsque je dois générer des repères pour chaque valeur de la liste cols_with_note comme YRe : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Certaines plateformes JMP vous permettent d'utiliser plusieurs colonnes comme entrées. Une fois que vous avez votre liste de colonnes, vous pouvez simplement l'utiliser directement comme entrée dans une plateforme. Vous avez donc besoin d'une boucle pour collecter les colonnes (ou d'une autre méthode, je n'ai pas vos données donc je ne peux pas le savoir) et la deuxième boucle peut être inutile en fonction du résultat final que vous souhaitez obtenir.
Mon exemple ne contient aucune boucle, car il n'est pas nécessaire que mon exemple de script boucle sur des colonnes pour créer une liste d'exemples. Je peux simplement choisir quelques colonnes pour montrer ce que vous pouvez faire, d'autant plus que vous semblez avoir déjà résolu la partie de collecte de colonnes.
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Ok je comprends mais je ne sais pas pourquoi quand je clique sur le bouton pour le lancer ça ne marche pas ? Donc je sais qu'il l'a sauvegardé mais je ne peux pas lancer les benchmarks depuis le bouton vert
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Faites un clic droit sur le script et sélectionnez Modifier

Vous pouvez ensuite visualiser le script qui se trouve dans le tableau. Il y a probablement un problème avec celui-ci. Il peut parfois être un peu difficile de les enregistrer correctement dans le tableau de données.
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Ok merci beaucoup, tu m'as vraiment sauvé !! J'ai une autre question, je fais ça pour plusieurs études et parfois la liste cols (ou cols_with_note) peut être vide mais le script que tu m'envoies ne fonctionne pas si cols est vide (ce qui est normal en fait) Je fais ce script pour les ajouter à un saut de formulaire de workflow. Y a-t-il un moyen de dire comme "si cols est vide, alors arrête le script et passe au suivant" ?
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?ou plutôt si la liste n'est pas vide on génère les benchmarks et sinon on ne fait rien
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Vous pouvez utiliser l'instruction if et N Items() pour vérifier si la liste contient des éléments. Et ensuite, arrêtez-vous si elle est vide ou faites autre chose
mylist = {};
If(N Items(mylist) == 0,
stop();
);
show(1);Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?Je vous suggère fortement de prendre le temps de lire le Guide de script disponible sous le menu déroulant Aide.
Re : Comment enregistrer la fenêtre des benchmarks dans la table de données ?J'ai remarqué que lorsque ma liste ne contient qu'un seul nom de colonne ou des colonnes vides, le script dit : send attend des objets scriptables, comment corriger cela ??