Cómo modificar un DisplayBox existente con JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy tratando de crear un botón que modificará la salida del cuadro de diálogo Ajustar modelo () para incluir un R2 previsto en la tabla Resumen de ajuste.Agarro la ventana actual y luego necesito activar la estadística PRESS.Después de esto, es bastante sencillo y funciona principalmente si ya activé la estadística PRENSA a través del menú del concurso.También funciona si yo mismo codifico el cuadro de diálogo Ajustar modelo y uso la línea dos para activar la estadística PRESS y luego enviarla al informe.El problema con el que me estoy encontrando es que agarrar la ventana actual () toma un DisplayBox sin forma de indicarle a la plataforma que haga las cosas.Consideré simplemente agarrar el script para hacer la ventana, cerrar el original y ejecutar uno nuevo (un parpadeo rápido de la pantalla no es tan malo), pero << Get Script devuelve la estructura de árbol, no el script Fit Model().¿Hay algo fácil que me estoy perdiendo?Estoy escribiendo esto en JMP 9, si eso ayuda.Espero que sea compatible con JMP 8, pero eso no es importante.¡Gracias!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Re: Cómo modificar un DisplayBox existente con JSLMS - ¡Get Scriptable Object resuelve el problema a la perfección!Veo dónde tener un 'grupo' podría causar problemas, pero no creo que sea un problema real dado el tipo de trabajo que hacemos aquí.¡Muchas gracias por llevarme a la solución!
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Re: Cómo modificar un DisplayBox existente con JSLOK veo. La razón por la que <
Me tomó un tiempo darme cuenta, pero el enfoque a continuación, usando <
dt = Abierto ( "$ENGLISH_SAMPLE_DATA/Clase grande.jmp" ) ;
Modelo de ajuste (
Y ( : peso ) ,
Efectos ( : altura ) ,
Personalidad ( Mínimos cuadrados estándar ) ,
Énfasis ( Informe mínimo ) , Correr
) ;
adaptar = Ventana ( "Clase grande: ajustar mínimos cuadrados" )[ esquema ( 1 )] << obtener un objeto programable ;
adaptar << Prensa ( 1 ) ;
imprimir ( adaptar << obtener guión ) //Get Script funciona como se esperaba!
Cómo modificar un DisplayBox existente con JSLMS - gracias por su rápida respuesta!El problema es que para que esto se implemente de la manera que quiero, no puede incluir la parte a continuación.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
Quiero poder implementar esto como un complemento para que los usuarios finales simplemente puedan presionar desde su barra de herramientas después de haber ajustado un modelo usando la interfaz típica de JMP y hacer que agregue la información importante.
Lo que me confunde es que no puedo, a través de JSL, acceder al menú contextual de la ventana si JMP lo creó en lugar de JSL.Puedo acceder fácilmente a los menús de nivel superior a través de JSL, pero no al menú contextual.Además, no entiendo por qué el mensaje << Get Script devuelve la estructura de árbol de la ventana en lugar de un script JSL para crearlo como lo que proporciona el menú contextual.Sé que JMP puede hacer las cosas que quiero, solo parece que no las tengo JSL.
Cómo modificar un DisplayBox existente con JSLNo estoy seguro exactamente de lo que está tratando de hacer, pero creo que debe enviar el mensaje Presione (1) a un objeto Ajustar modelo en lugar de a un objeto Ventana. Como en el ejemplo a continuación (Ejecutar y luego hacer clic en "PRESIONAR"). Funciona en JMP9 (Mac).
dt = Abierto ( "$English_Sample_Data/Tiretread.jmp" ) ;
adaptar = Modelo de ajuste (
Y ( : ABRASIÓN ) ,
Efectos ( : SÍLICE , : SILANO ) ,
Personalidad ( Mínimos cuadrados estándar ) ,
Énfasis ( Informe mínimo ) ,
Correr (
: ABRASIÓN << { Trazar real por predicho ( 0 ) , Trazar regresión ( 0 ) , Trazar Residual por Predicho ( 0 ) ,
Apalancamiento del efecto de la trama ( 0 )}
)
) ;
DG = Informe ( adaptar ) ;
DG << anteponer (
Caja de botones ( "PRENSA" ,
adaptar << prensa ( 1 ) ;
prensa = DG [ Cuadro de columna de número ( "Presione RMSE" )] << Obtener como matriz ;
prensa = prensa [ 1 ] ;
ss = DG [ Cuadro de columna de número ( "Suma de cuadrados" )] << Obtener como matriz ;
última fila = Fila N ( ss ) ;
acero inoxidable = ss [ última fila ] ;
predR = 1 - prensa / acero inoxidable ;
valores = DG [ Cuadro de columna de número ( 1 )] << Obtener como matriz ;
nuevos valores = j ( 1 , 6 ) ;
nuevos valores [ 1 :: 2 ] = valores [ 1 :: 2 ] ;
nuevos valores [ 6 ] = predR ;
nuevos valores [ 3 :: 5 ] = valores [ 3 :: 5 ] ;
DG [ Caja de cuerdas ( 1 )] << Añadir elemento ( "Preferencias cuadradas" ) ; // Agregar valores no funciona, por lo tanto, el reordenamiento
DG [ Cuadro de columna de número ( 1 )] << Establecer valores ( nuevos valores ) ;
)
) ;
Cómo modificar un DisplayBox existente con JSLPara que quede claro, la primera línea, dg = Ventana actual(); devuelve DisplayBox[] en el registro.Estoy buscando una forma de acceder a los menús contextuales en la ventana a través de JSL para agregar cosas a la estructura de árbol para poder tomarlas más adelante, específicamente, cómo marcar PRESS(1).¡Gracias!