Je crée une visualisation en stockant tous les noms de fichiers ouverts dans une liste déroulante. Je souhaite ensuite sélectionner un fichier spécifique et afficher toutes les colonnes numériques de ce fichier dans une liste déroulante. Curieusement, cela ne semble fonctionner que pour un fichier que j'ai créé moi-même et non pour deux autres fichiers du répertoire d'exemple. J'ai essayé de définir la table de données actuelle comme table de données, mais je ne parviens pas à changer de colonne.
Actuellement, il charge les colonnes de ma table defects.jmp et pas les autres.
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);
);
Lorsque je sélectionne « défauts », j'obtiens le résultat suivant, qui est le résultat souhaité

Cependant, les sélections ultérieures des autres tables ne remplissent pas les colonnes

table de défauts.jmp

J'ai essayé différentes options mais rien ne semble fonctionner ??? Bizarre.
Des suggestions ?
Vous devrez remplacer la liste déroulante Col car elle fera référence à une table de données spécifique
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>
Génial, merci Jarmo.
Supprimer et réajouter. Pourquoi n'y ai-je pas pensé ?
De plus, je ne connaissais pas la fonction « Get Data Table List() » qui est très pratique:)
Merci pour la réponse rapide.