¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?Estoy ejecutando JMP 17.1 y tengo el script que se muestra a continuación, que funciona gracias a @jthi ayuda.Cuando ejecuto el script, aparece un cuadro de tabla de Big Class.jmp en una ventana y puedo seleccionar una fila y devuelve los valores de Altura y Peso de la fila seleccionada.En mi aplicación del mundo real, tengo una tabla mucho más grande que me gustaría filtrar haciendo clic derecho en la ventana y eligiendo "Filtrar dónde...".Cuando obtengo la tabla filtrada en el Table Box, a veces la fila seleccionada devuelve los datos y otras veces devuelve un error que dice "Problema de subíndice en el acceso o evaluación de 'hvals[/*###*/sel], hvals[ /*###*/sel]".En mi ejemplo a continuación, hago clic derecho en el cuadro de tabla de clase grande y filtro por sexo == F.
¿Alguna idea sobre cómo puedo recuperar datos de todas las filas del cuadro de la tabla de subconjunto?
names default to here(1);
//run this now
dt = open("$sample_data\big class.jmp", invisible);
rpt = dt << select where(row() <= 10) << get as report;
tb = rpt[Table Box(1)];
tb << Set Selectable Rows();
tb << set row change function( Function( {this}, sel = this << get selected rows ) );
sel = tb << get row change function;
nw = new window("test",
v list box(
outline box("Big Class", rpt),
text box("Click 'OK' to choose height and weight"),
Button box("OK",
hvals = tb[NumberColBox("height")] << get;
wvals = tb[NumberColBox("weight")] << get;
ht = hvals[sel][1];
wt = wvals[sel][1];
print(sel, ht,wt);
)
)
);A continuación se muestran imágenes de la tabla original (primeras 10 filas de Big Class), la tabla de Big Class después de filtrar por sexo y elegir la fila donde ocurre el error por primera vez, y el mensaje de error.Tenga en cuenta que el script funciona en la tabla filtrada en las primeras 5 filas, pero no en las filas 6 o 7.
Automatización y secuencias de comandosRe: ¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?Parece un error en el que no se pueden obtener las filas que están DESPUÉS de las filas filtradas
Names Default To Here(1);
//run this now
dt = Open("$sample_data\big class.jmp", invisible);
rpt = dt << select where(Row() <= 10) << get as report;
Close(dt, no save);
tb = rpt[Table Box(1)];
tb << Set Selectable Rows(1);
nw = New Window("test",
V List Box(
Outline Box("Big Class", rpt),
Text Box("Click 'OK' to choose height and weight"),
Button Box("OK",
hvals = tb[Number Col Box("height")] << get;
wvals = tb[Number Col Box("weight")] << get;
sel = tb << get selected rows;
ht = hvals[sel][1];
wt = wvals[sel][1];
Print(sel, ht, wt);
)
)
);
wait(1);
tb << Filter Where(:sex == "F");
tb << Set Selected Rows([2]);
sel = tb << get selected rows;
show(sel);
wait(1);
tb << Set Selected Rows([6]);
sel = tb << get selected rows;
show(sel);
wait(1);
tb << Reset Filter;
sel = tb << get selected rows;
show(sel);
Re: ¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?Le sugiero que se comunique con el soporte de JMP (también puedo hacerlo si lo desea) con respecto a esto. Lo más probable es que existan bastantes soluciones diferentes, pero aquí hay una que parece funcionar (usando clone box()).
Names Default To Here(1);
//run this now
dt = Open("$sample_data\big class.jmp", invisible);
rpt = dt << select where(Row() <= 10) << get as report;
Close(dt, no save);
tb = rpt[Table Box(1)];
tb << Set Selectable Rows(1);
nw = New Window("test",
V List Box(
Outline Box("Big Class", rpt),
Text Box("Click 'OK' to choose height and weight"),
Button Box("OK",
hvals = tb[Number Col Box("height")] << get;
wvals = tb[Number Col Box("weight")] << get;
sel = (tb << clone box()) << get selected rows;
ht = hvals[sel][1];
wt = wvals[sel][1];
Print(sel, ht, wt);
)
)
);
wait(1);
tb << Filter Where(:sex == "F");
No estoy seguro de si ese cuadro clonado se almacena en algún lugar, por lo que podría ser mejor almacenarlo en una variable, obtener las filas seleccionadas y luego configurar esa variable como faltante.
Re: ¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?Informaré de esto al soporte de JMP.@jthi , Muchas gracias por toda su ayuda.
Re: ¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?Cuando reciba una respuesta del soporte, si tienen alguna solución alternativa, agréguela aquí. También podría ser una buena idea publicar también la identificación del ticket (si alguien tiene una pregunta similar y está vinculado a este tema, el personal de JMP puede buscar esa identificación del ticket y posiblemente verificar el estado).
Re: ¿Cómo evito un error al seleccionar una fila de un cuadro de tabla filtrada?El ticket de soporte de JMP es: TS-00063284