Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola, tengo una secuencia de comandos que realiza un análisis de un conjunto de datos dado y genera resúmenes en las primeras páginas de un informe (usa el comando new window() con varios objetos de visualización), seguido de N páginas de análisis con secuencias de comandos para N elegidos parámetros Todo esto está en el mismo informe, y hago uso de la función de salto de página para separar cada parámetro. N puede ser cualquier número... solo unos pocos o miles de parámetros/páginas.¿Es posible tener hipervínculos que se vinculen desde el resumen en la primera página más o menos y apunten a objetivos dentro de este informe? Podría apuntar a un objetivo codificado o a un número de página, que podría intentar rastrear.Se prefiere la referencia codificada ... con 1000 parámetros, el resumen abarcaría varias páginas y, en realidad, no estoy seguro de poder realizar un seguimiento del número de página.
He visto enlaces (por ejemplo, menú de ayuda -> datos de muestra -> todas las categorías los tienen), pero apuntarían a un archivo o supongo que también funcionaría alguna otra dirección de protocolo: comandos open() vs web().Pero, ¿es posible codificarlo de manera que pueda vincular y apuntar a un lugar en la misma ventana de informe?
Tenga en cuenta que debido a que hago un uso extensivo de cuadros de eje controlados dinámicamente / escalados y cálculos sobre la marcha, debe hacerse en la salida nativa 'nueva ventana ()', no en una exportación HTML5.
Gracias,
Miguel
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLEstaba navegando por el índice de secuencias de comandos jmp hoy y vi la función de cuadro de visualización 'scroll box ()' y me hizo pensar que puedo usar eso como un pseudo hipervínculo. Solo necesitaba algo 'en el que se pudiera hacer clic' que actuara cuando se hiciera clic.Ya tenía un cuadro de tabla de resumen () en la parte superior de mi informe, por lo que todo lo que tenía que hacer era hacer que las filas del cuadro de la tabla fueran seleccionables y la combinación de << establecer filas seleccionables () y << establecer la función de cambio de fila () hace exactamente eso. Cuando la selección cambia, la función se ejecuta, el código determina qué fila se selecciona y siempre que el orden de la trama corresponda al orden de la tabla, simplemente nos desplazamos a la referencia del i-ésimo cuadro de contexto (o cualquier cuadro de visualización). Intenté desplazarme a 'db[i]' donde db[i] = distribution(param[i],.......) pero eso no funcionó, pero sí lo hicieron los cuadros de visualización adecuados.
Parte de este código proviene directamente del índice de secuencias de comandos, en particular <
Una cosa que no se maneja bien es si se seleccionan varias filas con ctrl+clic (cmd, clic en Mac), pero no creo que esto sea un gran problema. Se podrían usar otros métodos... cualquier cosa como un cuadro de botón o << on change() podría usarse para desplazarse al objetivo. Un cuadro de lista, por ejemplo.
Es posible que esto ya se haya publicado, pero pensé que valía la pena compartirlo.Sólo me tomó 7 años para averiguarlo. Esperamos que te sea útil.
Names Default To Here( 1 );
//dummy data table
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// get col list
colList = {};
for( i = 1, i<=20, i++,
colList[i] = as column(dt, 4 + i) << get name();
);
// new window, table box with selectable rows
nw = New Window( "Example",
vlb = vlistbox(
Outline Box( "Table",
tb = Table Box(
String Col Box( "names", colList ),
<<SET selectable="" rows=""> 0,
nw << scroll window(cb[itemNum[1]]);
);
)
);
</SET>
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLgracias wendy Revisaré con algunos otros usuarios y veré si esto está bien. Para cientos de parámetros, seguirá siendo un poco de desplazamiento, pero no debería ser tan malo.
-Miguel
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLHola Jeff,
Pasé un tiempo revisando el conmutador de columna. Alguien en Discovery Summit lo había mencionado (poco después de su paso como presentador de un programa de juegos). ), pero no me di cuenta de que se puede agregar a cualquier plataforma.Me gusta mucho la función de reproducción/variación de velocidad. Sin embargo, mi secuencia de comandos tiene algunas otras características integradas, una de las cuales permite al usuario escalar el tamaño de la ventana en las distribuciones usando botones de opción (la aplicación es la prueba eléctrica de semiconductores en producción). Tengo un botón para escalar los ejes de todos los parámetros a los límites existentes (y otros tamaños de ventana como todos los datos, caída del lado bajo, caída del lado alto, mediana +/- N * IQR, etc.). Es importante mantener estos valores mínimos/máximos tal como los establece el usuario; parece que el conmutador de columnas restablece esto.Otras características incluyen la capacidad de agrupar usando Anova y GR&R al mismo tiempo.
Pero para esta función específica que uso, configuro todos los ejes mínimos/máximos en los límites de especificación correspondientes. Esto significa que la única parte de la distribución que se muestra es desde el límite mínimo hasta el límite máximo (especificación mínima/máxima en nuestras pruebas); esto se usa como punto de partida de modo que todos los parámetros comienzan con min / max de la ventana = límite de especificación min / max.Cada parámetro individual también tiene estos controles de escala del eje, o un usuario puede usar el mouse para escalar el eje.Después de que el usuario ingresa y escala los parámetros de interés, hay un botón en la parte inferior para generar una tabla de límites. Esto toma todos los valores de los ejes mínimos y máximos y los envía a una tabla que luego se puede importar al programa de prueba. Resulta ser una forma eficiente de ajustar muchos límites (especialmente con una opción de GUI para trazar solo los N principales infractores de rendimiento).Tenemos otros scripts para establecer límites a través del cpk deseado o cualquier matemática, pero a veces hay demasiadas distribuciones que no son ideales y esto funciona bastante bien.
Aquí hay un ejemplo de la salida, en este caso solo se trazó un parámetro y no lo agrupé.Los botones de radio escalarían el eje, y el cuadro de botones en la parte inferior recuperaría todos los valores mínimos/máximos y generaría la tabla.
Debido a que este guión se usa para algunas cosas diferentes, soy algo reacio a reescribirlo por completo.Pero veré si puedo hacer uso de ese conmutador de columna de una forma u otra en un futuro próximo.

Gracias,
Miguel
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLMiguel,
El ejemplo anterior de TabBox() debería guardarse como desee en PDF, pero eso no ofrece el informe largo que está buscando.Así que aquí hay otra opción para ti.Vea los comentarios incrustados para más detalles.
Wendy
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* New Window with a Summary OutlineBox and a separate Analyses OutlineBox */
nw = New Window( "Example 2", ob = Outline Box( "Summary" ), Outline Box( "Analyses", vl = V List Box() ) );
/* Initialize a list for storing references to the Distributions */
dist = {};
/* Loop through each column
- append each Distribution to the Analyses Outline Box
- append a button link to expand the specified Distribution OutlineBox */
For( i = 1, i <= N Items( colList ), i++,
vl << Append( dist = Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) ) );
var = colList || " Distribution";
Report( dist )[Outline Box( 1 )] << Set Title( var );
Eval(
Eval Expr(
ob << Append(
bb = Button Box( var,
Current Window()[Expr( var )] << Close All Like This;
Current Window()[Expr( var )] << Set Open( 1 );
)
)
)
);
bb << UnderlineStyle( 1 );
);
/* Add a button to open all the OutlineBoxes and save the output as PDF */
ob << Append(
Button Box( "Save All to PDF",
Current Window()["Analyses"] << Open All Below;
Current Window() << Set Page Setup( Scale(.75));
path = Pick File( "Select PDF File", "E:\Trash", {"PDF|pdf"}, 1, 1, "Example 2.pdf" );
Current Window() << SavePDF( path );
Open( path );
)
);
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLcreo que usaría Conmutador de columna en un caso como este.
Le permitirá a su usuario elegir el análisis que desee, sin secuencias de comandos adicionales de su parte para actualizar otra ventana.
Si desea la opción PDF, puede colocar un botón en la ventana que ejecutará todos los parámetros en una nueva ventana invisible y la guardará como PDF.
-Jeff
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLHola Wendy,
He estado pensando en esa línea como una solución alternativa, pero me gusta la idea de mantener el conjunto completo de parámetros en 1 informe muy largo para archivar informes. Puedo imprimir en pdf para que alguien (o muy probablemente, nadie) lo vea más tarde. Además, con más de 1000 parámetros, a veces es bueno poder pasar rápidamente una página hacia abajo y simplemente escanear visualmente en busca de una distribución que se vea mal (sesgada, bimodal, atípica).
Mi idea era crear la misma ventana que tengo ahora, pero también abrir una ventana separada la primera vez que se hizo clic en un enlace (nombre del parámetro) en el resumen. En esta ventana habría un conjunto de análisis y resultados que son esencialmente los mismos que tengo en mi ventana principal, excepto que en la ventana secundaria sería solo 1 parámetro, mientras que en la ventana principal sería el conjunto completo de muchos parámetros. Al hacer clic en los enlaces subsiguientes desde la ventana principal, se eliminaría el parámetro anterior de la ventana secundaria y se crearía uno nuevo.Hay varios botones de radio y otros controles y escalas de ejes que se realizan, por lo que tendría que tomar esta información y transmitirla al parámetro correspondiente de la ventana principal, pero probablemente funcionaría.Creo que la única excepción sería escalar manualmente el eje con el mouse.No creo que haya una función de evento asociada con esto (OnAxisChange() por ejemplo), pero supongo que se podría implementar un botón 'hecho' para tomar el nuevo mínimo/máximo y devolverlo a los parámetros de la ventana principal. eje.
Gracias,
Miguel
Re: Referencias similares a HTML dentro de una ventana de visualización con secuencias de comandos JSLHola Mike.
¿Has considerado usar TabBox()?Hay un estilo de pestaña llamado "Combo" que produce un menú desplegable de cada nombre de pestaña para que el usuario pueda seleccionar y ser llevado a esa pestaña directamente.Aquí hay un ejemplo simple:
/* Open sample data and obtain a list of column names */
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* Store the number of desired tabs in a variable */
nTabs = N Items( colList );
/* Create a New Window containing an empty TabBox */
New Window( "Example", tb = Tab Box() );
/* Use a For loop to add the desired number of tabs to the TabBox */
For( i = 1, i <= nTabs, i++,
tb << Add( colList || " Distribution",
V List Box(
Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) )
)
)
);
tb << Set Selected( 1 );
tb << Set Style( "combo" );