Hola a todos,
Actualmente estoy trabajando en una interfaz de extracción de datos mediante un filtro de datos. Puedo construirla, el problema radica en la disposición de las columnas en mi filtro en JMP19.
En JMP17, las columnas de los filtros se encuentran dentro de un LineUpBox(). El LineUpBox tiene dos funciones útiles, N Col y Spacing, que me permiten organizar mis columnas en varias líneas, con un espacio entre ellas.
Tree Structure of the Data Filter in JMP17Tree Structure of the Data Filter in JMP17Estructura de árbol del filtro de datos en JMP17
Sin embargo, en JMP19, la estructura de árbol del filtro de datos cambió: la función LineUpBox() se movió hacia arriba y el padre de las columnas es un List Box() que no tiene las funciones N Col() ni Spacing(). Puedo usar la función << Set Horizontal(1), pero solo puedo usar una línea y la visualización no es óptima.
(Tal vez el cambio se produjo en JMP18, no lo he probado en esta versión).
Tree Structure in JMP19Tree Structure in JMP19Estructura de árbol en JMP19
¿Tienes alguna idea de cómo puedo organizar las columnas de mi filtro tanto en JMP19 como en JMP17?
Intenté crear un nuevo LineUpBox() dentro y mover los Border Boxes como elementos secundarios, pero perdí el filtrado y no pude eliminar fácilmente los antiguos. Sé que podría lograr algo similar creando una Nueva Ventana() con un List Box() para cada columna del filtro, pero prefiero usar el Filtro de Datos por su propiedad Condicional y porque puedo usarlo fácilmente con diferentes tablas y columnas.
A continuación se muestra un ejemplo con dos columnas (aunque en realidad puedo tener más). Funciona en JMP17 (las dos columnas se muestran horizontalmente), pero no en JMP19.
Window from JMP17Window from JMP17Ventana de JMP17
f_extraction = Function({dt, cols_list, nbColsLine = 2, spacingLine = 30},
my_window = New Window("Extraction with filter",
Border Box(
Left(20), Top(10), Right(20), Bottom(10),
V List Box(
Panel Box("",
Eval(
Eval Expr(
// Creation of the Data Filter, with two columns as an example
df = dt << Data Filter(
Show Counts(0),
Conditional(1),
Show Histograms and Bars(0),
Add Filter(
Columns(Expr(cols_list)),
Display(cols_list, "List Display"),
)
)
)
);
// Here, the columns of the filter are reorderer in two columns with a space of 30 between them
// This is where I have the problem in JMP19 compared to JMP17 because the Tree Structure is different
(df << report)[Lineup Box( 2 )] << N Col( nbColsLine );
(df << report)[Lineup Box( 2 )] << Spacing( spacingLine );
For( i = 1, i <= N Items( cols_list ), i++,
(df << report)[ListBoxBox( i )] << Set Size( 180, 220 )
);
// We delete some buttons and check boxes that we don't need
(df << report)[Button Box( 4 )] << Delete;
(df << report)[Button Box( 3 )] << Delete;
(df << report)[Button Box( 2 )] << Delete;
(df << report)[CheckBoxBox( 4 )] << Delete;
(df << report)[CheckBoxBox( 3 )] << Delete;
(df << report)[CheckBoxBox( 2 )] << Delete;
(df << report)[CheckBoxBox( 1 )] << Delete;
(df << report)[Outline Box( 1 )] << Set Title( "Data Table Filters" );
),
Spacer Box(Size(0, 20)),
Button Box("OK",
// Script where I retrieve the user selection
)
)
)
)
);
// Example
Try(Close(Data Table("Big Class"), No Save));
dt = Open( "$SAMPLE_DATA/Big Class.jmp", Invisible);
f_extraction(dt, {"sex", "name"})
Gracias por tu ayuda !
Es una lástima que confiar en este tipo de estructura pueda romperse con bastante facilidad, https://www.hyrumslaw.com/ .
No creo que existan soluciones sencillas que se puedan lograr simplemente modificando los cuadros de visualización. El cambio en la estructura del filtro de datos también ha causado problemas en algunas interfaces de usuario de los complementos que administro en el trabajo, pero por una razón diferente, y será (con suerte...) más fácil de solucionar que intentar organizar los filtros en una cuadrícula.
JMP18 a la izquierda y JMP19 a la derecha.

Sí, sé que esta no es la mejor manera de trabajar con estas estructuras que podrían cambiar.
Supongo que lo dejaré como está por ahora, gracias por compartir tu experiencia 