Problema di selezione delle colonneSto creando una visualizzazione, memorizzando tutti i nomi dei file aperti in una casella di riepilogo. Voglio quindi selezionare un file specifico e visualizzare tutte le colonne numeriche di quel file in una casella di riepilogo. Stranamente, questo sembra funzionare solo per un file che ho creato io e non per altri due file dalla directory di esempio. Ho provato a impostare la tabella desiderata come "datatable corrente", ma non riesco a capire come cambiare colonna quando cambio tabella.
Attualmente carica le colonne per la mia tabella defects.jmp e non le altre.
ns = newNameSpace();
// Get some Data
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" ); // JMP Library.
dt1 = Open( "$SAMPLE_DATA/Football.jmp" ); // JMP Library.
dt1 = Open( "defects.jmp" ); // Troy Local File.
// Get a list of open files
openDTs = {};
for(i=1, i<= nTable(), i++,
insertInto(openDTs, dataTable(i))
);
// Create File and Column Selector
selectionWindow = newWindow("Col Selection Test",
ns:tableBox = listBox("", << setwidth(200), << setNLines(5), maxSelected(1),
selectedTable = (ns:tableBox << getSelected)[1];
currentDatatable(dataTable(selectedTable));
colList = dataTable(selectedTable) << getColumnNames("Numeric");
show(colList);
ns:columnBox << setItems(colList);
);
ns:tableBox << setItems(openDTs);
ns:columnBox = colListBox({}, width(177), << setNLines(5), maxSelected(1));
hListBox(ns:tableBox, ns:columnBox);
);
Quando seleziono "difetti" ottengo quanto segue, che è il risultato desiderato

Tuttavia, le selezioni successive delle altre tabelle non popolano le colonne

tabella defects.jmp

Ho provato varie opzioni ma niente sembra funzionare??? Strano.
Avete suggerimenti?
Automazione e scriptingRi: Problema di selezione delle colonneDovrai sostituire Col List Box poiché farà riferimento a una tabella dati specifica
Names Default To Here(1);
ns = New Namespace();
Open("$SAMPLE_DATA/Big Class.jmp");
Open("$SAMPLE_DATA/Football.jmp");
Open("$SAMPLE_DATA/Cars.jmp");
dts = Get Data Table List() << get name;
selectionWindow = New Window("Col Selection Test",
H List Box(
lb = List Box(
dts,
<< Set Width(200),
<< Set NLines(5),
maxSelected(1),
sel_vals = lb << Get Selected;
If(N Items(sel_vals) > 0,
(clb_collector << Child) << Delete Box();
clb_collector << Append(
clb = Col List Box(Datatable(sel_vals[1]),
<< Set Items(Data Table(sel_vals[1]) << Get Column Names("Numeric", "String")),
<< Set Data Type("Numeric"),
width(177),
<
<SETNLINES></SETNLINES>
Ri: Problema di selezione delle colonneFantastico, grazie Jarmo.
Cancella e riaggiungi. Perché non ci ho pensato prima?
Inoltre, non ero a conoscenza della funzione 'Get Data Table List()' che è molto utile:)
Grazie per la risposta rapida.