Selettore di tabelle dati interattive<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />C'è un modo per scrivere questa parte di selezione dell'elenco di tabelle di dati seguente in uno script jsl?

A partire da ora ho eseguito uno script, ma solo su una tabella di dati alla volta, esiste una funzione che posso chiamare per creare un selettore di elenchi di tabelle di dati come l'immagine che ho allegato sopra e, dopo la selezione, posso avere il mio la tabella dei dati corrente è stata aggiornata di conseguenza? Il mio script non così flessibile ora ha questo aspetto

Voglio raggiungere questo obiettivo

Qualsiasi aiuto sarebbe molto apprezzato!
Oggetto: selettore di tabelle dati interattiveQualcuno ha una soluzione per aggiornare il Filter Col Selector usando un metodo simile a PMroz? La sua risposta è praticamente la più vicina a ciò che sto cercando di ottenere, l'unica differenza è che utilizzo un Filter Col Selector invece di una Col List Box, e in qualche modo non riesco a farlo aggiornare o aggiornare di conseguenza
Oggetto: selettore di tabelle dati interattiveCiao PMroz,
Funziona benissimo per me, l'ho integrato nel mio script e mi sono reso conto che ho usato male una parola lassù, stavo usando un filtro Col Selector invece di una casella di riepilogo col, vedo che il tuo modo di farlo è impostare e aggiornare il nuovo set di colonne dalla tabella in base alla tabella di dati selezionata e la parte che lo aggiorna è quando si chiama
colonne_listbox = casella di riepilogo ( col_list ) ;
per visualizzare la tabella appena aggiornata. Quindi ho provato a replicarlo per il "filter col selector".
1) Ho modificato un po' del tuo codice in modo che non appaia in una nuova finestra e vada nella mia finestra originale
2) Ho modificato il Filter Col Selector nella variabile "SelectedIndex" e l'ho chiamato di seguito nella speranza che si aggiornasse, ma ovviamente sto sbagliando. Conosci il modo giusto per aggiornare il Filter Col Selector come hai fatto per la Col List Box? Vorrei applicare il tuo metodo di lavoro per la Col List Box al Filter Col Selector

Questo è il mio codice per il Filter Col Selector
param = Filter Col Selector(data table(selectedIndex),
Tutto,
larghezza( 250 ),
colname = param << prendi selezionato();
colStatInfo(nomecol[1]);
lista << non valido;
lista << updateWindow;
lista << rimostra;
),
param << nominale( 0 );
//param << Il nome contiene( " " );
)
Oggetto: selettore di tabelle dati interattiveProva questo codice:
// Precarica la casella combinata della tabella con un elenco di tabelle esistenti
default_table = tabella dati corrente () << ottenere nome ;
tabella_elenco = {} ;
tabelle = ntable () ;
Per ( io = 1 , io <= tabelle , io ++,
un_nome = Tabella dati ( io ) << Ottieni nome ;
tabella_elenco [ io ] = un_nome ;
// Per la tabella predefinita carica la casella di riepilogo delle colonne
Se ( un_nome == default_table ,
default = io ;
col_list = tabella dati ( io ) << ottenere i nomi delle colonne ( come stringa ) ;
) ;
) ;
nw = nuova finestra ( "Test" ,
select_table_combo = casella combinata ( tabella_elenco ,
// Questa funzione viene chiamata quando cambia la selezione della casella combinata
selezionatoIndice = select_table_Combo << Fatti selezionare ;
col_list = tabella dati ( selezionatoIndice ) << ottenere i nomi delle colonne ( come stringa ) ;
// columns_listbox << rimuovi tutto;
colonne_listbox << elementi impostati ( col_list ) ; ) ,
colonne_listbox = casella di riepilogo ( col_list ) ;
) ;
Oggetto: selettore di tabelle dati interattiveCiao PMroz, ho letto la presentazione e ora sono consapevole che può essere fatto più facilmente e molto più interattivo se fatto usando l'application builder, ma a questo punto (mille righe nello script), probabilmente ci vorrà del tempo per ricostruirlo nel generatore di applicazioni. C'è un modo per fare in modo che aggiorni automaticamente le colonne mentre seleziono la tabella e faccio clic sulla casella del pulsante senza trasferire tutto al generatore di applicazioni?
Oggetto: selettore di tabelle dati interattiveQuesto presentazione su Application Builder dovrebbe essere utile.Tra le altre cose mostra come popolare dinamicamente una casella di riepilogo con i nomi delle colonne quando viene scelta una particolare tabella.
Oggetto: selettore di tabelle dati interattiveScusa, avrei dovuto fornire maggiori dettagli, hai ragione, ho una casella di riepilogo Col da qualche parte sotto che vorrei aggiornare automaticamente mostrando le colonne in base alla tabella che ho selezionato

Puoi elaborare di più su come allegare uno script a dtlb? Definito sopra, dtlb = Casella di riepilogo ( dtNames , MaxItems ( 1 ))
Oggetto: selettore di tabelle dati interattivePenso che la risposta dipenda da come hai progettato le altre parti dell'interfaccia utente per supportare il flusso di lavoro che desideri. Ma non penso che tu abbia bisogno di alcuna ricorsione.
Ad esempio, se hai anche un 'ColListBox()' per visualizzare le colonne della tabella che è stata selezionata tramite il metodo sopra, puoi allegare uno script a 'dtlb' (definito sopra) in modo che (quando la selezione della tabella è effettuate o modificate) aggiorna automaticamente l'elenco delle colonne disponibili. Allo stesso modo, potresti collegare uno script a "ColListBox ()" che crea o aggiorna una finestra di report (supponendo che tu abbia bisogno di una sola colonna per la tua analisi).
(Senza vedere più dettagli, è un po' difficile essere più utili).
Oggetto: selettore di tabelle dati interattiveGrazie Ian per l'aiuto, ho una domanda di follow-up se non ti dispiace. Ora che ho un modo per ottenere l'elenco di tutte le tabelle di dati, per aggiornare lo script ed eseguire tutte le operazioni sulla tabella di dati appena selezionata, si consiglia di chiamare lo stesso identico script (con la tabella di dati appena scelta) tramite ricorsione ? O c'è una funzione di cui non sono a conoscenza che può aggiornare rapidamente lo script ed eseguirlo sulla nuova tabella di dati che ho selezionato?
Oggetto: selettore di tabelle dati interattiveForse qualcosa del genere:
NamesDefaultToHere ( 1 ) ;
dtNames = {} ;
Per ( T = 1 , T <= NTable () , T ++,
Inserire ( dtNames , Tabella dati ( T ) << getNome ) ;
) ;
nw =
Nuova finestra ( "Test" ,
PanelBox ( "Scegli un tavolo" ,
dtlb = Casella di riepilogo ( dtNames , MaxItems ( 1 ))
) ,
ButtonBox ( "OK" , OKscript )
) ;
OKScript =
Espr (
nw << chiudi la finestra ;
dtNome = dtlb << getSelected ;
Se ( NArticoli ( dtNome ) > 0 ,
Stampa ( "Tabella selezionata: " || dtNome [ 1 ])
,
Stampa ( "Nessuna tabella selezionata" )
)
) ;
Ri: Selettore tabella dati interattiva@pmroz Ciao, potresti condividere nuovamente il collegamento di presentazione al generatore di applicazioni. Ho lo stesso caso d'uso ma il collegamento sembra essere stato archiviato.
Ri: Selettore tabella dati interattivaEcco qua @Aadit . Questo è stato scritto in JMP 10! Ma dovrebbe comunque avere informazioni rilevanti.