Bonjour à tous,
Je travaille actuellement sur une interface d'extraction de données utilisant un filtre de données. Je parviens à la construire, mais le problème réside dans la disposition des colonnes de mon filtre dans JMP19.
Dans JMP17, les colonnes des filtres sont contenues dans un contrôle LineUpBox(). Ce contrôle possède deux fonctions utiles, N Col et Spacing, qui me permettent d'organiser mes colonnes sur plusieurs lignes, avec un espace entre elles.
Tree Structure of the Data Filter in JMP17Tree Structure of the Data Filter in JMP17Structure arborescente du filtre de données dans JMP17
Cependant, dans JMP19, la structure arborescente du filtre de données a changé : le LineUpBox() a été déplacé vers le haut et le parent des colonnes est une ListBox() qui ne possède pas les fonctions NCol() et Spacing(). Je peux utiliser la fonction << SetHorizontal(1), mais je suis limité à une seule ligne et l'affichage n'est pas optimal.
(Le changement a peut-être eu lieu dans JMP18, je n'ai pas essayé dans cette version).
Tree Structure in JMP19Tree Structure in JMP19Structure arborescente dans JMP19
Auriez-vous une idée de la façon dont je peux organiser les colonnes de mon filtre dans JMP19 ainsi que dans JMP17 ?
J'ai tenté de créer un nouveau LineUpBox() à l'intérieur et d'y déplacer les BorderBoxes comme enfants, mais j'ai perdu le filtrage et je n'ai pas pu supprimer facilement les anciens éléments. Je sais que je pourrais obtenir un résultat similaire en créant une New Window() avec une ListBox() pour chaque colonne du filtre, mais je préfère utiliser le filtre de données pour sa propriété conditionnelle et sa facilité d'utilisation avec différentes tables et colonnes.
Voici un exemple avec deux colonnes (mais en réalité, il est possible d'en avoir davantage). Cela fonctionne avec JMP17 (les deux colonnes sont affichées horizontalement), mais pas avec JMP19.
Window from JMP17Window from JMP17Fenêtre 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"})
Merci pour votre aide !
Dommage que s'appuyer sur ce type de structure puisse assez facilement se briser, https://www.hyrumslaw.com/ .
Je ne pense pas qu'il existe de solution simple que l'on puisse obtenir en modifiant simplement les boîtes d'affichage. La modification de la structure des filtres de données a également perturbé l'interface utilisateur de certains modules complémentaires que je gère au travail, mais pour une raison différente, et ce sera (espérons-le...) plus facile à gérer que d'essayer d'organiser les filtres dans une grille.
JMP18 à gauche et JMP19 à droite

Oui, je sais que ce n'est pas la meilleure façon de contourner ces structures qui pourraient changer !
Je vais donc le laisser tel quel pour le moment, merci d'avoir partagé votre expérience 