Ho una tabella denominata dt. Prendo i valori univoci di alcune colonne e creo il seguente menu che dà la possibilità all'utente finale di filtrare la tabella dt in base ai valori delle colonne e prendere un sottoinsieme di questa.

Tuttavia, prendere i valori univoci della sua colonna è rischioso perché potresti finire per scegliere una combinazione di attributi che non esiste nella tabella.
Esiste un modo per rendere questo menu interattivo o dinamico in modo da restringere le scelte disponibili man mano che l'utente finale effettua alcune scelte?
In generale, esiste un modo per gestire il problema di ritrovarsi con una tabella vuota perché il set di dati iniziale non contiene tutte le combinazioni dei valori univoci degli attributi?
Potresti provare a utilizzare il filtro dati condizionale, ma potrebbe rovinare il layout/richiedere un po' di lavoro extra per farlo sembrare simile.
Ecco un rapido esempio. Suggerirei di rendere il riferimento più robusto e possibilmente di utilizzare il filtro dati locale anziché globale. Inoltre dovresti parametrizzare questo (avvolgimento, istruzioni, ...)
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);

Ci sono anche alcuni posti in cui JMP utilizza qualcosa di simile (come Sample Index) ma potrebbero anche avere accesso ad alcune implementazioni migliori delle nostre.
È possibile utilizzare le istruzioni "o" tra 2 condizioni di filtraggio dei dati? Il filtro dati condizionali utilizza le istruzioni "e" e filtra i dati in modo dinamico. Ma cosa succede se le mie condizioni sono come le seguenti:
Condizione_di_colonna1 e (Condizione2_di_colonna2 o Condizione3_di_colonna3)
Potrebbe non essere possibile quando si utilizzano filtri dati condizionali