Problema de selección de columnasEstoy creando una visualización que almacena todos los nombres de archivos abiertos en un cuadro de lista. Luego quiero seleccionar un archivo específico y mostrar todas sus columnas numéricas en un cuadro de lista de columnas. Curiosamente, esto solo funciona con un archivo creado por mí mismo y no con dos archivos adicionales del directorio de ejemplo. Intenté configurar la tabla seleccionada como "tabla de datos actual", pero no logro cambiar de columna al cambiar de tabla.
Actualmente carga las columnas de mi tabla defectos.jmp y no las de las demás.
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);
);
Cuando selecciono 'defectos' obtengo lo siguiente, que es el resultado deseado.

Sin embargo, las selecciones posteriores de las otras tablas no completan las columnas.

tabla defectos.jmp

He probado varias opciones pero nada parece funcionar. Qué raro.
¿Alguna sugerencia?
Automatización y scriptingRe: Problema de selección de columnasTendrá que reemplazar el cuadro de lista Col, ya que hará referencia a una tabla de datos específica
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>
Re: Problema de selección de columnasGenial, gracias Jarmo.
Borrar y volver a añadir. ¿Por qué no se me ocurrió?
Además, no conocía la función 'Obtener lista de tabla de datos()', que es muy útil.:)
Gracias por la rápida respuesta.