Re: Cómo codificar botones de opción en gráficos interactivos y unirlos en el tablero@Feli ,
No he usado DashboardBuilder excepto un ejemplo simple. Uso Application Builder o simplemente escribo un script para crear una aplicación.Es posible que desee leer al respecto. A algunos les gusta mucho. Otros que han estado escribiendo scripts por un tiempo, generalmente manejan las cosas a través de JSL.
A continuación se muestra una captura de pantalla del inicio de un ApplicationBuilder para su tarea.
Creo que leer el capítulo 11 es un buen comienzo,
Re: Cómo codificar botones de opción en gráficos interactivos y unirlos en el tablero@gzmorgan0
¡Muchas muchas gracias!
Se las arregló para alcanzar exactamente mi solución deseada.
En uno de mis muchos intentos anteriores, estaba jugando con las variables de la tabla: conseguí que los controles deslizantes funcionaran, pero no el botón de opción.
La clave que me faltaba era:
dt << Set Table Variable("Faktor", Expr(num (cat << Get Selected) ) );Mi variable de tabla para Faktor siempre fue una cadena, lo que estropeó la fórmula, así que tuve que encontrar otras formas.
Estaba tratando de construir mi gráfico usando Dashboard Builder/Application Builder, ya que muchas personas lo recomendaron al comenzar la construcción de JSL/aplicaciones, pero implementaré sus consejos y profundizaré en los contenedores, etc.
¡Muchas gracias de nuevo por tu ayuda!
Re: Cómo codificar botones de opción en gráficos interactivos y unirlos en el tablero@Feli ,
Hay varios elementos en este script que causarán problemas.
El primero es con gato, el RadioBox. La secuencia de comandos se adjunta al cuadro de esquema, no al cuadro de radio.
//Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update ) //wrong, see below
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} , update ) )
Nombres predeterminados aquí (1); establece que los valores de las variables solo se aplican a este script.No necesita abordar el espacio de nombres Here y la sintaxis es Here:A . Pero eso genera otro problema, las columnas de fórmula G1scale, G2scale, etc. tendrán una fórmula como: G1*A.Una vez que se ejecuta el script, o si intenta abrir la tabla en una fecha posterior, la variable A es desconocida.Un par de sugerencias son:
- cree las variables de la tabla, A, B, C, Faktor con dt << Establecer la variable de la tabla (A, 1)
- luego la fórmula se convierte en :G1*:A y la tabla reconocerá ese valor cuando el script no se esté ejecutando,
- si ejecuta su secuencia de comandos más de una vez, creará múltiples G1scale, G1scale 2, etc. Esto se puede hacer de manera más elegante verificando si la columna o existe, si existe, elimínela o simplemente asigne la función. Además, una vez que se cierra la ventana, puede eliminar esas columnas usando una función Al cerrar para nw.
Sin embargo, la mayor sugerencia es que si va a profundizar en la creación de scripts interactivos, debe aprender a crear informes JMP con
Contenedores: HListBox , VListBox , LineupBox , PanelBox .Su guión utiliza el ContornoCuadro envase.
Control S: BotónCuadro , SliderBox , Caja , etc.
Aporte: Caja combo , Cuadro de lista , ColListBox , etc.
No confíe en la combinación de ventanas.
El Capítulo 11 de la Guía de secuencias de comandos de JMP es un buen lugar para comenzar. Menú principal > Ayuda > Documentación de JMP > Guía de secuencias de comandos de JMP >> Capítulo 11
Se adjunta un script que utiliza este diseño (estructura de árbol)


Cómo codificar botones de radio en gráficos interactivos y unirlos en el tableroHola todos,
Quiero escribir un pequeño tablero/aplicación donde pueda cambiar tres variables A, B, C usando controles deslizantes (se permiten niveles continuos) y una cuarta variable Faktor usando botones de opción (ya que solo se permiten 4 niveles).

Las columnas de mi tabla de datos G1, G2, G3 luego se multiplican por A, B, C, así como por Faktor y se trazan junto con la suma de las tres columnas nuevas usando el generador de gráficos.
Clear Log();
Delete Symbols();
Names Default To Here( 1 );
// default parameter values.
A = 1;
B = 2;
C = 3;
Faktor = 2;
dt = Current Data Table();
dt << New Column( "G1scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):A) * Here( 1 ):Faktor ) );
dt << New Column( "G2scale", Numeric, Continuous, Formula( (:G2 * Here( 1 ):B) * Here( 1 ):Faktor ) );
dt << New Column( "G3scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):C) * Here( 1 ):Faktor ) );
dt << New Column( "SumColumn", Numeric, Continuous, Formula( :G1scale + :G2scale + :G3scale ) );
Tengo mi secuencia de comandos funcionando hasta ahora que al arrastrar un control deslizante se actualizan las columnas de fórmula en la tabla de datos, pero tengo problemas para hacer lo mismo con mis botones de opción.
update = Expr(
Here( 1 ):A = p;
Here( 1 ):B = r;
Here( 1 ):C = t;
Here( 1 ):Faktor = Choose( nw1["cat"], 1, 2, 3, 4 );
dt << rerun formulas;
Wait( 0 );
);
nw1 = New Window( "Faktor",
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update )
);
nw2=New Window( "Sliding",
Outline Box( "A",
Slider Box(
1,
10,
p,
update
)
),
Outline Box( "B",
Slider Box(
1,
10,
r,
update
)
),
Outline Box( "C",
Slider Box(
1,
10,
t,
update
)
)
);
g1=Graph Builder(
Size( 529, 456 ),
Show Control Panel( 0 ),
Variables(
X( :WL ),
Y( :G1scale ),
Y( :G2scale, Position( 1 ) ),
Y( :G3scale, Position( 1 ) ),
Y( :SumColumn, Position( 1 ) )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Simulated Plot" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Mygauss" )} )
)
);No puedo actualizar la tabla de datos (y, por lo tanto, el gráfico) cuando selecciono un botón de opción.
Un segundo problema es que quiero unir las tres ventanas actuales en una sola ventana (tablero o aplicación). Puedo seleccionarlos todos para Combinar ventanas, pero cuando trato de enviarlos al generador de tableros, solo aparece la ventana del generador de gráficos, no los silders. ¿Cómo puedo arrastrar mis botones de radio/silder al Panel/Generador de aplicaciones?
Organización de contenidoLa personalización en masa