Comment enregistrer une image en jslBonjour, JMPer, je souhaite utiliser jsl pour enregistrer uniquement les histogrammes de Process Capability sans aucun fichier . Existe-t-il un moyen d'y parvenir ?
Automatisation et scriptsRe : Comment sauvegarder une image en JSLSi vous voulez juste ces histogrammes et rien d'autre, il est probablement plus simple de les capturer un par un à partir de la plateforme de distribution.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
nw_collector = New Window("",
vlb = V List Box()
);
cols = {"NPN1", "PNP1"};
For Each({col_name}, cols,
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(Eval(col_name)),
Horizontal Layout(1),
Vertical(0),
Process Capability(Use Column Property Specs)
)
);
lb = Report(dist)[OutlineBox(col_name || " Capability"), OutlineBox("Histogram"), ListBox(1)];
pic = lb << Get Picture;
vlb << Append( // use outlinebox to add title
OutlineBox("Process Capability for " || col_name, pic)
);
dist << Close Window;
);
Ces images peuvent être capturées à partir de Process Capability ou de distribution lorsque toutes ces images sont ouvertes en même temps, mais il est plus facile de naviguer dans la couche de rapport de cette façon.

Re : Comment sauvegarder une image en JSLRécemment, j'ai découvert que l'enregistrement d'images dans une table de données peut être utile dans certains cas d'utilisation. Voici une version modifiée qui fait cela, basée sur @jthi L'exemple.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = {"NPN1", "PNP1"};
outputdt = New Table( "imgs",
Add Rows( nitems(cols) ),
New Column( "image", Expression, "None", Set Values( {} ) ),
);
i = 1;
For Each({col_name}, cols,
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(Eval(col_name)),
Horizontal Layout(1),
Vertical(0),
Process Capability(Use Column Property Specs)
)
);
lb = Report(dist)[OutlineBox(col_name || " Capability"), OutlineBox("Histogram"), ListBox(1)];
pic = lb << Get Picture;
outputdt:image[i] = pic;
i++;
dist << Close Window;
);Re : Comment sauvegarder une image en JSLMerci beaucoup.
Mais j'avais une autre question, après avoir enregistré l'image dans un tableau, peut-on l'exporter sous forme de fichier Excel ? J'ai essayé de le faire, cela n'était pas affiché comme sur l'image.

Re : Comment sauvegarder une image en JSLCe n'est pas possible à ma connaissance. Voici les raisons :
1) Les images dans Excel ne sont pas des données cellulaires. Ce sont des objets OLE, dont on peut penser que les images sont des pièces jointes à la feuille. Les images du tableau de données JMP sont des données de cellule. Excel et JMP voient donc les images différemment.
2) Excel ne comprendra probablement jamais la signification des images dans JMP.
Re : Comment sauvegarder une image en JSLVoici comment exporter le rapport sous forme de fichier MS Word.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
nw_collector = New Window("",
vlb = V List Box()
);
cols = {"NPN1", "PNP1"};
For Each({col_name}, cols,
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(Eval(col_name)),
Horizontal Layout(1),
Vertical(0),
Process Capability(Use Column Property Specs)
)
);
lb = Report(dist)[OutlineBox(col_name || " Capability"), OutlineBox("Histogram"), ListBox(1)];
vlb << Append( // use outlinebox to add title
OutlineBox("Process Capability for " || col_name, lb);
);
dist << Close Window;
);
vlb << save msword("c:\TEMP\test.doc", native);

Re : Comment sauvegarder une image en JSLJe pense que pour que les images soient excellées, il faudra PowerShell (ou quelque chose d'autre comme Python) en plus de JSL. Vous pouvez exécuter le code PowerShell de JMP en utilisant Exécuter de programme()