seleccione la tabla de datos actualHola,
Estoy usando un pequeño jmp_addin para agregar información de límites de especificación a las columnas seleccionadas.De todos modos, el problema con el que me encuentro es que cada vez que lo ejecuto, siempre toma la última tabla de datos que estaba abierta, incluso si estoy ejecutando el complemento desde una ventana diferente... ¿hay alguna manera de resaltar el jmp_addin que yo ¿Estoy tratando de ejecutar un script desde la tabla de datos seleccionada?Pensé que currentdatatable haría esto, pero nuevamente parece que siempre funciona en la última tabla de datos abierta, y a veces necesito cambiar/agregar especificaciones a una tabla ya abierta...
¡Gracias de antemano!
dt = currentdatatable();
table=list("Spec1", "Spec2", "Spec3" );
r = Column Dialog(
Spec = Col List( "Columns to add Spec" ),
v list ("Select Product Spec Table", rb = Combo Box( table()))
);
dtedc = open("C:\myData\ADDIN\Spec Limit\"||table[r["rb"]]||".jmp",invisible);
for ( i=1, i<=N Items(r["Spec"]),i++,
for (j=1, j<= nrows(dtedc), j++,
if(as Name(r["Spec"]) == as Name(dtedc:Parameter),
Eval(
Substitute(
Expr(
Column(dt, r["Spec"]) << set property("spec limits",
{LSL( l), Target( t ), USL( u ), Show Limits(1)}
)
),
Expr( l ), dtedc:LSL,
Expr( t ), dtedc:Target,
Expr( u ), dtedc:USL
)
);
);
);
);
close(dtedc, nosave);
Re: seleccionar tabla de datos actualSi coloca la definición de la función choose_data_table en la parte superior de su código, funcionará.
Re: seleccionar tabla de datos actualSí, eso funciona. Solo esperaba un método que incitara a los usuarios a seleccionar una mesa, ya que a menudo tenemos muchas abiertas a la vez. Y confiar en el conocimiento de los distintos usuarios para su tabla de datos actual no ha funcionado bien en el pasado. solo esperaba tener un método para pedir a los usuarios que especifiquen. Pero esto tendrá que hacer.
Re: seleccionar tabla de datos actualCuando vi la línea
dt = choose_data_table();
Supuse que tenía una función en alguna parte anterior de su código que le permitía elegir la tabla de datos para ejecutar.Pero si no lo hace, le sugiero que cambie la línea a:
dt = current data table();
e intenta ejecutar tu código
Re: seleccionar tabla de datos actual@txnelson
Gracias por preguntar. No había considerado comprobar el registro. Dice:
Nombre no resuelto: choose_data_table en acceso o evaluación de 'choose_data_table', choose_data_table() /*###*/
En el siguiente script, error marcado por /*###*/
dt = elegir_tabla_datos() /*###*/;
Mostrar (dt);
dt << Seleccione Dónde (: Pad Resumen == "Sobrecarga");
dt << Colores( 22 );
dt << Marcadores( 11 );
dt << Seleccione Dónde( :Pad Summary == "Curve Error" );
dt << Colores( 27 );
dt << Marcadores( 2 );
dt << Seleccione Dónde (: Pad Resumen == "Detectado");
dt << Colores( 4 );
dt << Marcadores( 12 );
dt << Seleccione Dónde( :Pad Summary == "Posición Desalineada" );
dt << Colores( 3 );
dt << Marcadores( 2 );
dt << Seleccione Dónde( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colores( 1 );
dt << Marcadores( 2 );
dt << Seleccione Donde( :Pad Resumen == "Negativo" );
dt << Colores( 1 );
dt << Marcadores( 0 );
dt << Seleccione Dónde (: Pad Resumen == "Desconectar");
dt << Colores( 0 );
dt << Marcadores( 9 );
dt << Seleccionar donde (: Pad Summary == "High CP Current");
dt << Colores( 56 );
dt << Marcadores( 24 );
dt << Seleccione Dónde (: Estado de ejecución == "No válido");
dt << Marcadores( 4 );Re: seleccionar tabla de datos actualque errores te da en el log?
Re: seleccionar tabla de datos actualSí, lo intentaré. Lo siento, soy bastante nuevo y no estoy capacitado formalmente en ningún scripting, lo que probablemente sea obvio. Agregué el selector de tabla de datos en este script en lugar de usar:
dt = Tabla de datos actuales ();
y asegurarme de que la tabla de datos actual era la tabla que quería reformatear. Cuando implementé por primera vez la función Elegir tabla de datos, funcionó de maravilla y creó un aviso desde el cual seleccionar la tabla deseada. También se lo envié a un colega para que lo usara, y no funcionó para él, a pesar de verificar que el script no había cambiado. Abrí el script guardado y tampoco me funcionó. Así que alterné entre los métodos anteriores de formato y volví al método de elegir tabla de datos y funcionó de nuevo. Más tarde ya no lo hizo.
Realmente no tengo una buena explicación técnica para la inconsistencia, o qué cambió entre los intentos exitosos y fallidos. Por lo que puedo decir, nada específicamente lo hizo. Hackeo estas cosas juntas, por lo que definitivamente hay algunos principios fundamentales que me faltan, como borrar o designar preferencias o símbolos. ¿Quizás el problema está fuera del alcance de una breve publicación en el foro?
gracias de cualquier manera
Re: seleccionar tabla de datos actualCreo que vamos a necesitar más información sobre lo que significa "funcionar de manera inconsistente". ¿Puede proporcionar más detalles?
Re: seleccionar tabla de datos actualHola @Jeff_Perkinson ,
Estoy tratando de emplear esto en un módulo bastante simple que formatea marcadores de datos. Funcionó muy bien cuando configuré inicialmente el script, pero desde entonces ha estado funcionando de manera inconsistente. ¿Hay alguna idea de por qué sería así? Los títulos y valores de las columnas son fiables.
dt=choose_data_table();
show(dt);
dt << Select Where( :Pad Summary == "Overload" );
dt << Colors( 22 );
dt << Markers( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << Colors( 27 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Detected" );
dt << Colors( 4 );
dt << Markers( 12 );
dt << Select Where( :Pad Summary == "Position Misalign" );
dt << Colors( 3 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colors( 1 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colors( 1 );
dt << Markers( 0 );
dt << Select Where( :Pad Summary == "Disconnect" );
dt << Colors( 0 );
dt << Markers( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << Colors( 56 );
dt << Markers( 24 );
Gracias
Re: seleccionar tabla de datos actualAcabo de encontrarme con esta vieja pregunta que, lamentablemente, nunca obtuvo una respuesta.
Tabla de datos actual () debe devolver una referencia a la ventana de la tabla de datos activa. No estoy seguro de por qué no es en tu caso.
Sin embargo, un método más confiable es solicitar al usuario que elija entre las tablas de datos abiertos.
Aquí hay una pequeña función que muestra una lista de tablas de datos y devuelve la elección realizada por el usuario.
choose_data_table=function({},
list = {};
For( i = 1, i <= N Table(), i++,
list[i] = Data Table( i ) << get name
);
win = New Window( "Select a data table", << Modal,
hb = H List Box(
Panel Box( "Choose a data table",
dt = List Box(
list,
max selected( 1 ),
chosen = Data Table( (dt << get selected)[1] );
show (chosen);
)
),
)
);
chosen);
Úsalo así:
dt=choose_data_table();
show(dt);