Evite el desplazamiento de la ventana al agregar cuadros de presentación¿Hay alguna manera de evitar que una ventana se desplace a la ubicación de los cuadros agregados?En el siguiente script de ejemplo, al presionar el botón "Agregar spline" se agregará una nueva spline con la mitad del valor lambda del anterior, y después de presionar el botón unas 6 veces, la ventana se desplaza desde el gráfico hasta la ubicación del Spline de control recién agregado.
Este es un ejemplo: la solución NO ES simplemente eliminar los otros gráficos de control de la pantalla.En mi código actual, elimino el gráfico de control con el comando biv << (Curva[1] << Informe(0)), pero de todos modos se desplaza.
Cualquier ayuda sería muy apreciada.
¡Gracias!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentaciónLa opción n.° 2 de agregar la spline a mano funcionó. JMP tiene una función útil para calcular splines, por lo que esto lo hizo muy fácil.Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentación¿Ha considerado utilizar un informe con pestañas con un selector?Vea la imagen a continuación.¿O está creando una página con varios gráficos, por ejemplo, uno al lado del otro, para cada vista?
Además, otras alternativas son:
- Crea tu Bivariado con dos splines con cuadros colapsados (ocultos). Hasta que el usuario seleccione un valor o el botón, establezca el ancho de línea de la segunda spline en 0 para que no sea visible. Permita que el usuario seleccione cuál debe ser el valor de la segunda spline. En otras palabras, no está agregando un montón de splines, simplemente envíe un mensaje para cambiar el factor de suavizado de uno. Eso eliminaría cualquier salto.
- Cambie el comportamiento del botón Agregar spline para agregar una curva usando Agregar secuencia de comandos de gráficos, en lugar de usar el mensaje de la interfaz de usuario Ajustar spline.Esto requeriría secuencias de comandos adicionales: usar funciones para obtener coeficientes, evaluar, elegir un color, agregar la secuencia de comandos de gráficos,
La opción número 1 sería la más fácil.
El control deslizante de la interfaz de usuario de JMP anticipa lo que está intentando emular; el usuario puede ajustar el factor de suavizado.

Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentación¡Gracias por la ayuda!Veré si puedo hacer que esto funcione, pero creo que este método al final no funcionará para mí. Estoy modificando una función llamada por varios informes para generar los gráficos. No puedo agregar un cuadro de desplazamiento a los informes.La única solución que se me ocurre y que funcionaría para mí es simplemente evitar que el nuevo contenido active el mecanismo de desplazamiento.
Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentación¿Qué versión de JMP estás usando?
Se adjuntan 2 guiones: scrollers_ob.jsl y desplazadores.jsl
Ambos son esencialmente el mismo script, excepto por la acción de desplazamiento.
scrollers_ob.jsl
- usa solo VListBox(), vlb y Scroll Window() para el cuadro de esquema que contiene el botón que el usuario acaba de presionar. Sin embargo, si un usuario se desplaza a la sexta pantalla, una parte de la pantalla 5 muestra que la pantalla 6 aparece en la parte superior. El usuario sigue viendo el gráfico de interés y la acción de desplazamiento es fluida.
desplazadores0.jsl
- utiliza un contenedor ScrollBox(), sb, para vlb.Un ScrollBox tiene una buena función << obtener posición de desplazamiento. Al usar esa función, para establecer la posición de desplazamiento, el usuario verá exactamente la misma posición, sin embargo, la pantalla es inestable, no suave.
Ambos scripts utilizan expresiones para eliminar el código "cortado" que puede ser difícil de leer y mantener. Tenga en cuenta que crea identificadores/referencias a cada cuadro de botón, cada bivariado y cada cuadro de esquema de "visualización".Haga clic derecho en cualquier botón> seleccione editar> seleccione establecer script para ver la referencia a bivariado, etc.
Como información para los maestros de JSL, intenté usar Set Function() para ButtonBox() y usar su padre y hermano. Sin embargo, me sorprendió que vlb << Scroll Window(this) no funcionara para mí.Podría haber sido un error de codificación. No le dediqué mucho tiempo porque pensé que el código podría ser demasiado obtuso para ser informativo.
Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentación¡Gracias por tu ayuda!Sin embargo, mi problema es que no quiero que se muestre ninguna parte del resumen, simplemente quiero que se dibuje el spline.Para este fin, empleo los comandos Visibilidad( "Collapse" ) y (Curve[x] << Report(0)), que evitan que los informes se muestren con éxito.Sin embargo, la pantalla todavía se mueve como si se mostraran.
He incluido un ejemplo más completo aquí.Al hacer clic en el botón para agregar la spline, se desplaza inmediatamente hasta el punto donde el gráfico ya no es visible, aunque (al final) no se muestra ningún contenido nuevo.
Tengo un informe que se utiliza en mi empresa que tiene muchos gráficos en una página como este ejemplo, y tener la capacidad de agregar splines de forma interactiva es bastante útil, pero cuando el gráfico de interés se mueve fuera de la pantalla como resultado, también lo hace. una gran molestia con la que lidiar.
¡Cualquier ayuda sería muy apreciada!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);Re: Evitar el desplazamiento de la ventana al agregar cuadros de presentaciónDesde el punto de vista de la interfaz de usuario interactiva, tiene sentido desplazarse hasta el resumen de ajuste.Este script emplea dos funciones/métodos útiles del cuadro de visualización JMP: Visibilidad() y Ventana de desplazamiento(). Scroll Window() se usa para regresar siempre a la parte superior de la pantalla, y la visibilidad se usa para "contraer" los cuadros de contorno asociados con las splines.
Tenga en cuenta que, para simplificar, este script utiliza el recuento de cuadros de esquema.Sin embargo, Xpath para encontrar el késimo cuadro de esquema con la clave de ayuda que comienza con Bivar Spline sería más directo.
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>