JSL: casilla de verificación para seleccionar la variable y luego trazarla en el generador de gráficosHola a todos,
Estoy intentando crear un script que funcione de esta manera:
1. Se abre una nueva ventana que muestra "Seleccione los parámetros que desea trazar" con una lista de parámetros con una casilla de verificación para cada uno, y el operador elegirá cuáles desea trazar marcándolos.
2. Luego, para los que están marcados, abra un generador de gráficos con las variables correspondientes.
Actualmente puedo realizar el primer paso (nueva ventana y lista con casillas de verificación) y sé cómo crear un script para crear un gráfico, pero extraño el vínculo entre ellos...Inicialmente estaba pensando en llamar a cada casilla de verificación individualmente y luego hacer una sucesión de "si" como "si cb1 está marcado, entonces haz el gráfico, si no, entonces si cb2 está marcado, etc....". Intenté entrenar con el siguiente script, pero al final siempre muestra "Error" sin importar si marco la casilla, por lo que en realidad no marca la casilla:
Names Default To Here( 1 );
New Window( "Choose the parameters to be plotted",
cb1 = Check Box ("Parameter 1",0),
cb2 = Check Box ("Parameter 2",0)
);
wait(5);
If (cb1 == 1,
Graph Builder(
Variables(
X( :Name( "Process duration" ) ),
Y( :Name( "Parameter 1" ) ) ) ),
New Window( "Failed"));¿Tienes alguna idea de cómo hacer eso?
@martindemel
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosLo siento por eso. Mientras tanto, también felicité a Mark.Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosFelicitaciones a Mark
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosGracias Martin, por este útil guión.Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosAcabo de probar esta solución y funcionó perfectamente, ¡¡gracias!!Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosEjemplo:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dialog = Column Dialog(
col = Col List( "X, Factor", Min Col( 1 ), Max Col( 1 ) )
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
Remove From( dialog );
Eval List( dialog );
x = col[1];
dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( x ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosno estoy seguro de entender
Veo el sentido de usar el cuadro de diálogo de la columna para pedirle al operador que seleccione la columna, pero aún no sé cómo vincularlo con la creación automática de gráficos después.Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosvale, tiene sentido. Incluso entonces, podría usar el cuadro de diálogo de la columna, aunque luego deberá ajustar ligeramente su secuencia de comandos para que se use el nombre de variable correcto. Lo bueno es que puede usar un nombre de variable autodefinido que desee usar en su secuencia de comandos más adelante y eliminar la dependencia de los nombres de las variables de la tabla. Aún puedes hacer una estructura if_else, pero en lugar de :age puedes usar tu propio nombre, lo que hace que el script sea más general y, por lo general, también más robusto.Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosEl método Choose() que utilicé es apropiado para Radio Box, pero no tan útil para el caso de entrada de Check Box: solo permite ejecutar una de las declaraciones.
Pruebe algo como:
If(cb<<GET></GET>
Tenga en cuenta que CheckBox<
http://www.jmp.com/support/help/en/15.1/#page/jmp/display-functions.shtml#ww2548850
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosHola martin,
En realidad, no mencioné la imagen completa: ya tengo un script que crea todos los gráficos uno por uno, los guarda en el diario y luego cierra el generador de gráficos. Entonces, al final de este guión, tengo un diario con todos mis gráficos.
Ahora me gustaría agregar un primer paso a este gráfico que es la selección de variables. Entonces necesito que el operador seleccione lo que quiere y luego, para todas las variables seleccionadas, se debe aplicar el segundo generador de gráficos de script -> Diario.
¿Tiene sentido?
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosPuede que no sea exactamente lo que necesita, pero si desea crear un gráfico para cada una de las variables seleccionadas, puede considerar un cuadro de diálogo de columna para permitir que el operador seleccione las variables que desea trazar en los roles X e Y y luego trazar esto para cada variable seleccionada:
https://www.jmp.com/support/help/en/15.1/?os=win&source=application#page/jmp/construct-a-column-dialog.shtml#
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Tablet Production.jmp", Invisible);
cdb = Column Dialog("Add continuous variables you want to plot against Dissolution" ,
colxx = ColList( "X", Min Col( 1 ), Modeling Type( "Continuous" ) ),
);
show(cdb);
Eval List(cdb[1::N Items(cdb)-1]);
Graph Builder(
Size( 526, 454 ),
Show Control Panel( 0 ),
Variables( X( colxx[1] ), Y( :Dissolution )),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) ),
Column Switcher( colxx[1], colxx )
);
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosIntenté cambiar el cuadro de radio a una casilla de verificación en su ejemplo, pero nuevamente solo hace un gráfico incluso si se seleccionan varios cuadros (y en realidad no funciona para Altura y no tengo idea de por qué)... Creo que todavía me falta algo en ese guión:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
rc = New Window("Choose the parameters to be plotted",
cb = Check box ({"weight", "height", "sex"}),
Button Box("Ok",
Choose(cb<<GET></GET>
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosEn ese caso puedes conservar el Casilla de verificación() muestra que estaba usando originalmente: en su ejemplo no quedó claro cómo se usarían las entradas si ambos elementos (o ninguno de ellos) estaban marcados.RadioBox es un buen control si desea una y sólo una respuesta, pero puede usar cualquiera de los métodos de entrada con cualquier conjunto de controles, incluido Cuadro de edición de texto() para entrada de cadena o NúmeroEditBox() para entrada numérica.
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficos¡¡Parece prometedor, muchas gracias!! Sin embargo, en lo que usted sugirió, es una casilla o la otra, pero no ambas, mientras que a mí me gustaría tener marcadas tantas casillas como sea necesario... ¿Qué debo cambiar en tus guiones?
Re: JSL: marque la casilla para seleccionar la variable y luego trazarla en el generador de gráficosCuando se solicita información en un cuadro de diálogo, estas son dos formas comunes de hacer las cosas:
1. Utilice un cuadro de diálogo modal para pausar la ejecución del script mientras espera la entrada:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input
rc = New Window("Choose the parameters to be plotted",
<<MODAL></MODAL>// Launch report if Ok was pressed
if (rc["Button"] == 1,
// Ok pressed
Choose (rc["rb"],
Graph Builder(Variables(X(:age), Y(:weight))),
Graph Builder(Variables(X(:age), Y(:height)))
);
,
// Cancel
"Cancel"
)
En su secuencia de comandos, la variable "cb1" es un DisplayBox.En este ejemplo, la opción <
2. Realice la parte de "acción" del diálogo como parte de un script de botón:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input and create graph
rc = New Window("Choose the parameters to be plotted",
rb = Radio Box({"weight", "height"}),
Button Box("Ok",
Choose(rb<<GET></GET>
Un cuadro de diálogo modal bloqueará todas las demás entradas a otras ventanas, mientras que el segundo enfoque le permitiría continuar usando otras ventanas en JMP al mismo tiempo.
¡Espero que ayude!
Re: JSL - Casilla de verificación para seleccionar la variable que luego se representará en el generador de gráficosSencillo y eficaz. ¡Genial!