J'ai une table nommée dt. Je prends les valeurs uniques de certaines colonnes et je crée le menu suivant qui donne la possibilité à l'utilisateur final de filtrer la table dt en fonction des valeurs des colonnes et d'en prendre un sous-ensemble.

Cependant, prendre les valeurs uniques de sa colonne est risqué car vous risquez de finir par choisir une combinaison d'attributs qui n'existe pas dans la table.
Existe-t-il un moyen de rendre ce menu interactif ou dynamique afin de réduire les choix disponibles à mesure que l'utilisateur final fait certains choix ?
En général, existe-t-il un moyen de résoudre ce problème qui consiste à se retrouver avec une table vide parce que l'ensemble de données initial ne contient pas toutes les combinaisons des valeurs uniques des attributs ?
Vous pouvez essayer d'utiliser un filtre de données conditionnel, mais cela pourrait perturber votre mise en page / nécessiter un peu de travail supplémentaire pour lui donner une apparence similaire.
Voici un exemple rapide. Je suggérerais de rendre le référencement plus robuste et éventuellement d'utiliser un filtre de données local plutôt que global. Vous devez également paramétrer cela (emballage, instructions, ...)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Animals.jmp");
nw = New Window("",
V List Box(align("center"),
Text Box("Animals Study Evaluation", << Set Base Font("Title")),
Text Box("Add-in version 1.0", << Set Base Font("Heading")),
Text Box("Documentation report: xxxxxx", << Set Base Font("Heading")),
Panel Box("Study Selections",
Button Box("Start Over", f << Clear);
f = dt << Data Filter(
Conditional,
Show Controls(0),
Show Modes(0),
Show Histograms and Bars(0),
Add Filter(
columns(:season, :species, :subject),
Where(:season == "fall"), // force conditional filter order
Where(:species = "COYOTE"),
Where(:subject= "1"),
Display(:season, N Items(4)),
Display(:species, N Items(2), "List Display"),
Display(:subject, N Items(3), "List Display")
)
)
)
)
);
Window("")["Data Filter",BorderBox(6)] << Sib Prepend(
V List Box(
Text Box("Selection of Seasons", << Set Font Size(12), << Set Font Style("Bold Italic")),
Text Box("Please select which seasons to use for the analysis. Multiple seasons can be selected by holding 'ctrl' down while pressing multiple seasons.", << Set Wrap(400))
)
);
Window("")["Data Filter",BorderBox(6)] << Sib Append(Spacer Box(Size(0, 20)));
Window("")["Data Filter",BorderBox(7)] << Sib Prepend(
V List Box(
Text Box("Selection of Species", << Set Font Size(12), << Set Font Style("Bold Italic")),
Text Box("Please select which Species to use for the analysis. Multiple Species can be selected by holding 'ctrl' down while pressing multiple Species.", << Set Wrap(400))
)
);
Window("")["Data Filter",BorderBox(7)] << Sib Append(Spacer Box(Size(0, 20)));
Window("")["Data Filter",BorderBox(8)] << Sib Prepend(
V List Box(
Text Box("Selection of Subjects", << Set Font Size(12), << Set Font Style("Bold Italic")),
Text Box("Please select which Subjects to use for the analysis. Multiple Subjects can be selected by holding 'ctrl' down while pressing multiple Subjects.", << Set Wrap(400))
)
);
Window("")["Data Filter",BorderBox(3)] << Visibility("Collapse");
Window("")["Data Filter",CheckBoxBox(1)] << Visibility("Collapse");
Window("")["Data Filter",BorderBox(1)] << Visibility("Collapse");
nw[Outline Box(1)] << Set Title("");
// To force the order of conditional filtering
// https://community.jmp.com/t5/JMP-Wish-List/Option-to-make-Conditional-Data-Filter-work-from-top-to-bottom/idi-p/746949
f << (Filter Column(:subject) << Clear Selection);
f << (Filter Column(:species) << Clear Selection);
f << (Filter Column(:season) << Clear Selection);

Il existe également des endroits où JMP utilise quelque chose comme ça (comme Sample Index), mais ils peuvent également avoir accès à des implémentations plus intéressantes que nous.
Est-il possible d'utiliser des instructions « ou » entre 2 conditions de filtrage des données ? Le filtre de données conditionnel utilise des instructions « et » et filtre les données de manière dynamique. Mais que se passe-t-il si mes conditions sont les suivantes :
Condition_of_column1 et (Condition2_of_column2 ou Condition3_of_column3)
Peut ne pas être possible lors de l'utilisation de filtres de données conditionnels