Est-il possible d'afficher les filtres de données/filtres de données locaux horizontalement ? (Modifier l'interface utilisateur)Salut tout le monde,
J'utilise le filtre de données dans JMP et j'ai souvent plus de 10 filtres. Actuellement, ils sont tous affichés verticalement dans une longue liste, et je dois beaucoup faire défiler vers le bas pour appliquer les filtres, ce qui est vraiment bizarre.
Est-il possible de personnaliser l'interface utilisateur du filtre de données afin que certains filtres puissent être affichés horizontalement en lignes (au lieu d'une longue pile verticale de listes déroulantes) ?
Merci d'avance pour vos conseils !
Automatisation et scriptageAnalyse et modélisation de données de baseRe : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Je pense qu'il est possible de reproduire ce résultat en utilisant plusieurs filtres de données. Est-il possible d'organiser les filtres de données sur deux colonnes ? On pourrait également y parvenir en manipulant les boîtes d'affichage, mais je n'ai pas testé cette méthode (j'utilise des filtres de données personnalisés dans ce genre de cas).
Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)
Merci pour votre réponse. Idéalement, cela devrait être possible avec un seul filtre de données plutôt qu'avec plusieurs, car le principal avantage d'un filtre de données est sa capacité à appliquer un filtrage conditionnel. Bien que l'utilisation de plusieurs filtres puisse être une solution envisageable, je ne suis pas certain qu'il soit simple de transmettre le contexte aux filtres internes pour réaliser un filtrage conditionnel. De plus, l'interface utilisateur serait absolument affreuse.
J'ai également constaté certaines limitations avec les filtres de données personnalisés (testés sur une ComboBox) :
- Problèmes d'interface utilisateur : Lorsque les valeurs des colonnes sont trop longues, la liste déroulante devient excessivement longue et difficile à utiliser, même avec une seule valeur longue. (Il est plus long de tronquer ou de filtrer les données avant de les afficher dans la liste déroulante, ce qui est plus long et plus lent qu'un simple filtre de données.)
- Problèmes de performance : L’affichage de milliers d’enregistrements est extrêmement lent. J’ai essayé différentes approches (comme la synthèse pour obtenir les valeurs uniques et l’utilisation du hachage pour identifier les valeurs uniques des colonnes), mais aucune n’a abouti.
- Complexité du filtrage conditionnel : Si vous avez de nombreuses listes déroulantes, la mise en œuvre du filtrage conditionnel nécessite d’écrire une quantité importante de code, ce qui devient rapidement fastidieux.
Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Merci pour votre réponse.
Auriez-vous un exemple de code à partager où vous affichez les valeurs des colonnes d'un tableau de données dans une zone de liste déroulante, une condition étant remplie ?
Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Une approche légèrement différente :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 787 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :height, :weight )
)
)
);
Current Report()["Local Data Filter", List Box( 6 )] << set Horizontal( 1 );
Current Report()[ List Box( 4 )] << set Horizontal( 0 );

Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Que cherchez-vous à faire ? Quelles sont les conditions ? Dans quel ordre les conditions doivent-elles s’appliquer ? Doivent-elles s’appliquer dans l’ordre ou certaines peuvent-elles être ignorées ? Pouvez-vous modifier le tableau principal (nouvelles colonnes/sélections) ? Quand les filtres s’appliquent-ils (immédiatement/au clic sur un bouton) ? << « Sélectionner une zone où » avec restriction est probablement une option assez simple
Le filtre de données locales peut utiliser une zone de liste déroulante (ou un sélecteur similaire).
Names Default To Here(1);
colcount = 3;
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
dist = dt << Distribution(
Nominal Distribution(Column(:country)),
Local Data Filter(
Conditional,
Add Filter(
columns(:country, :size, :type),
Display(:country, N Items(3), "Single Category Display"),
Display(:size, N Items(3), "Single Category Display"),
Display(:type, N Items(3), "Single Category Display")
)
)
);
ldf_ob = (Report(dist) << Top Parent)[Outline Box("Local Data Filter")];
lub = ldf_ob[LineupBox(2)];
lub << N Col(colcount);
For(i = 1, i <= colcount, i++,
lub << Prepend(Spacer Box(Size(200, 0)));
);
Write();
Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Pensez-vous que cela fonctionne sans le générateur de graphiques ? Si vous supprimez le générateur de graphiques, pourrez-vous afficher les données horizontalement comme vous le souhaitez ?
Re : Est-il possible d’organiser les filtres de données/filtres de données locaux horizontalement ? (Modification de l’interface utilisateur)Chaque boîte de liste possède l'indicateur Horizontal(0/1).
Il suffit de modifier l'indicateur pour transformer n'importe quelle liste verticale d'objets affichés en une liste horizontale.
Voici un exemple de filtre de données pures en mode horizontal (je ne sais pas si cela est utile).
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
win = new window("test", dt << data Filter(
Add Filter(
columns( :height, :countries visited, :family cars )
)
));
win["Data Filter",ListBox(7)] << set horizontal(1)