Ich erstelle eine Visualisierung und speichere alle geöffneten Dateinamen in einer Listbox. Anschließend möchte ich eine bestimmte Datei auswählen und alle numerischen Spalten dieser Datei in einer colListBox anzeigen. Seltsamerweise scheint dies nur für eine selbst erstellte Datei zu funktionieren und nicht für zwei weitere Dateien aus dem Beispielverzeichnis. Ich habe versucht, die ausgewählte Tabelle auf die „aktuelle Datentabelle“ einzustellen, kann aber nicht herausfinden, wie ich beim Tabellenwechsel die Spalten wechseln kann.
Derzeit lädt es die Spalten für meine defects.jmp-Tabelle und nicht die anderen.
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);
);
Wenn ich „Defekte“ auswähle, erhalte ich das folgende, was das gewünschte Ergebnis ist

Nachfolgende Auswahlen der anderen Tabellen füllen die Spalten jedoch nicht aus

defects.jmp-Tabelle

Ich habe verschiedene Optionen ausprobiert, aber nichts scheint zu funktionieren??? Seltsam.
Irgendwelche Vorschläge?
Sie müssen das Col List Box ersetzen, da es sich auf eine bestimmte Datentabelle bezieht
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>
Super, danke, Jarmo.
Löschen und erneut anhängen. Warum bin ich nicht darauf gekommen?
Außerdem war mir die Funktion 'Get Data Table List()' nicht bekannt, die sehr praktisch ist:)
Danke für die schnelle Antwort.