Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?So come farlo in modo interattivo, ma come ottenere i dati selezionati da Data Filter () da una tabella di dati padre in una nuova tabella di dati (sottoinsieme) tramite JSL? Ho anche bisogno che la nuova tabella di dati del sottoinsieme venga creata di nuovo (chiudendo il vecchio sottoinsieme) o quella vecchia aggiornata (se possibile) quando la selezione cambia nel filtro dati.
Automazione e scriptingRe: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?Che tipo di filtro dati hai e dove? In che modo l'utente esegue le selezioni (devono essere utilizzate solo le selezioni effettuate sul filtro dati)? A cosa serve la tabella risultante?
Controllare l'indice di scripting per il filtro dati

Ottieni righe filtrate, Ottieni dove clausola, Mostra sottoinsieme come alcune opzioni
Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?@jthi È Filtro dati ()
Questo è quello che ho ottenuto finora. Funziona parzialmente. Ho bisogno che la tabella si aggiorni o ne generi una nuova se la selezione cambia. Come farlo in JSL (su Close ())?
Names Default To Here (1);
dt = Current Data Table();
nw = New Window("Select Parameters", << modal, << return result,
obj = dt << Data Filter(
//Location( {3000, -600} ),
Width( 315 ),
Conditional,
Add Filter(
columns( :Col1, :Col2, :Col3, :Col4),
Display( :Col2, "Check Box Display" ),
Display( :Col3, "Check Box Display" ),
Display( :Col4, "Check Box Display" ),
Display(
:Parameter,
N Items( 20 ),
"Check Box Display",
Find( Set Text( "" ) )
)
)
);
);
//obj << Get Filtered Rows;
dtNew = dt << subset( selected columns(1), selected rows(1));Comincio con tutte le caselle deselezionate affinché l'utente possa selezionare in base alla quale viene generata la tabella dei dati. Ottieni righe filtrate non sembra funzionare nel mio caso.
Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?Vuoi che venga generata una nuova tabella ogni volta che la selezione cambia? O vuoi avere modale che continuerà dopo che l'utente ha effettuato le selezioni?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?@jthi preferirei un viene generata una nuova tabella ogni volta che la selezione cambia cancellando i vecchi valori nella tabella (utile per quello che voglio fare dopo). Non so come farlo, quindi ha fatto l'approccio modale.
Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?È possibile utilizzare il gestore dello stato del filtro per attivare "eventi" quando la selezione nel filtro viene modificata.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
f = Function({a},
Show(obj << get filtered rows);
);
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?@jthi Grazie per aver indicato il gestore dello stato del filtro. Tuttavia, il tuo script non funziona esattamente come vorrei per il modo "sostituisci la tabella di dati esistente con nuovi dati". La finestra del filtro dati deve rimanere aperta e i dati popolati/aggiornati/rigenerati in "dtNew" man mano che l'utente modifica la selezione. Possibile?
Re: Come ottenere i dati selezionati da Data Filter () in una nuova tabella di dati (utilizzando JSL)?Non sarebbe semplicemente più semplice consentire all'utente di effettuare tutte le selezioni e quindi fargli premere OK quando sono pronti?
Ri: Come ottenere i dati selezionati da Data Filter () in una nuova tabella dati (utilizzando JSL)?La soluzione migliore è utilizzare un filtro dati locale: un filtro dati globale modifica gli stati delle righe della tabella dati.
Se hai una finestra con un filtro dati locale di questo tipo (prima parte), devi solo eseguire questo codice e otterrai un sottoinsieme corrispondente.
Il codice può essere utilizzato per ogni finestra del rapporto e può essere aggiunto come collegamento alla barra degli strumenti.
In alternativa, è possibile aggiungere una casella pulsante alla finestra per attivare la generazione della tabella del sottoinsieme.
Names Default to Here(1);
/*dt0 = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt0 << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);*/
ldf = Try( Current Report()["Local Data Filter"] << get scriptable object, Stop() );
dt = ldf << Get Data Table();
WhereClause = ldf << Get where clause();
If( Not( Is Missing( WhereClause ) ),
Eval( Parse( Substitute( ldf << Get where clause(), "Select Where", "myRows= dt << get rows where" ) ) );
dt << subset( Rows( myRows ), Selected columns only( 0 ) );
);
In alternativa.... *)
R: Come ottenere i dati selezionati tramite Data Filter() in una nuova tabella dati (utilizzando JSL)?Che ne dici del componente aggiuntivo Dynamic Subset (tabella dati filtrabile, aggiornata) ?