Cómo guardar una imagen por jslHola, JMPer. Quiero usar jsl para guardar solo los gráficos de histograma de capacidad de proceso sin ningún archivo . ¿Hay alguna manera de lograrlo?
Automatización y secuencias de comandosRe: Cómo guardar una imagen mediante jslSi solo desea esos histogramas y nada más, lo más probable es que sea más fácil capturarlos uno por uno desde la plataforma de distribución.
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;
);
Esas imágenes se pueden capturar desde Capacidad de proceso o desde distribución cuando las tiene todas abiertas al mismo tiempo, pero es más fácil navegar por la capa de informe de esta manera.

Re: Cómo guardar una imagen mediante jslRecientemente, descubrí que guardar imágenes en una tabla de datos puede resultar útil en algunos casos de uso. Aquí hay una versión modificada que hace eso, basada en @jthi El ejemplo.
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: Cómo guardar una imagen mediante jslMuchas gracias.
Pero tenía otra pregunta: después de guardar la imagen en la tabla, ¿se puede exportar como archivo de Excel? Intenté hacer esto, no se muestra como imagen.

Re: Cómo guardar una imagen mediante jslEsto no es posible que yo sepa. Aquí están las razones:
1) Las imágenes en Excel no son datos de celda. Son objetos OLE, que puedes pensar que las imágenes son archivos adjuntos a la hoja. Las imágenes de la tabla de datos JMP son datos de celda. Entonces Excel y JMP ven las imágenes de manera diferente.
2) Excel probablemente nunca entenderá el significado de las imágenes en JMP.
Re: Cómo guardar una imagen mediante jslA continuación se explica cómo exportar el informe como un archivo de 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: Cómo guardar una imagen mediante jslCreo que para que las imágenes sobresalgan se necesitará powershell (o algo más como Python) además de jsl. Puede ejecutar el código de PowerShell desde JMP usando Ejecute el programa()