ejecutar script de tabla¿Cuál es la diferencia entre ejecutar un Table Script a través del ícono verde de Reproducir?

... ¿y mediante el botón Ejecutar?

Automatización y secuencias de comandosRe: ejecutar script de tabla¿Hay motivos para sospechar que existe una diferencia? Desde la "ventana" del script puede, por ejemplo, ejecutar partes separadas resaltándolas.
Re: ejecutar script de tablaGeneralmente hacen lo mismo.
La flechita verde es más rápida, un clic.
: )
Re: ejecutar script de tablaDespués de inventar la tercera "solución" a un "problema de sincronización" en un script de tabla, lamentablemente sin éxito real
... Descubrí que la diferencia real era:
- ejecute el script a través del ícono de reproducción → problema
- abra la ventana del script - [pruebe algún código nuevo... o nada] - y haga clic en el botón Ejecutar → no hay problema.
Re: ejecutar script de tablaAl ejecutarlo al hacer clic en la flecha verde de ejecución, se ejecuta el script en la tabla de datos a la que está adjunto.
Al ejecutar el script desde la ventana Editar, se ejecuta el script en la tabla de datos actualmente activa, que puede no ser la tabla de datos en la que se guardó el script.
Re: ejecutar script de tablaYo también pensé lo mismo ...
Re: ejecutar script de tablaBuena idea,
pero en realidad, para el modo "Editar" presté atención a tener "mi tabla" activa antes de hacer clic en ejecutar.
Y: es el modo "Editar" el que funciona 
tal vez esté relacionado con una tabla de datos actual() en algún lugar del código, que podría actuar de manera diferente si el script se inicia mediante el ícono de reproducción, o mediante el botón Ejecutar.
:)simplemente poniendo un:) La tabla de datos actual() directamente en un script de tabla no mostró una diferencia entre los dos enfoques.
Pero mi código es una larga cadena de JSL, Menú principal ("..."), abrir archivo, unir, concatenar...
:)Intentaré reducir la complejidad para mostrar la diferencia o generar un ejemplo anónimo...
Re: ejecutar script de tablaIntenté agregar
current data table();
para ver si apuntaría el script a la tabla de datos en la que se guardó el script, y no fue así. El script se ejecutó contra cualquier tabla de datos que fuera la tabla de datos actual.
Re: ejecutar script de tablaNo se puede confiar en Current Data Table() en ninguno de esos casos. Si se abre una nueva tabla inmediatamente después de presionar el triángulo verde, la tabla actual puede cambiar antes de que se ejecute el script (lo más probable es que no suceda con el botón verde de ejecutar, pero podría hacerlo). Bastante fácil de probar con un script como este
wait(1);
Caption(Current Data Table() << get name);
Ejecute el script presionando el triángulo verde e inmediatamente presione Ctrl+N para crear una nueva tabla.
Sin embargo, parece que si deja fuera la Tabla de datos actual(), se activará en la tabla desde la cual se ejecutó el script (en ambos casos)
wait(1);
Current Data Table() << New Column("A");
vs
wait(1);
New Column("A");
Re: ejecutar script de tablaCon respecto a mi problema
En realidad, al final, fue una cuestión de tiempo.
...como lo describió Jarmo, pero algo al revés:
Utilizo un complemento personalizado para cargar un archivo.
Y como el menú principal no puede devolver un valor de retorno
,
Utilicé la tabla de datos actual() para obtener acceso a la tabla recién creada
esta era la idea...
//<FONT face="courier new,courier">Abrir( "$SAMPLE_DATA/Big Class.jmp" );</FONT><BR />Main Menu("load_");
// wait(1);
dt= current data table(); // the idea: myDT
caption(dt << get name())
a) Si solo uso Open( "$SAMPLE_DATA/Big Class.jmp") , todo va bien.
Por otro lado, después de abrir la tabla de datos a través del Menú principal ("load_") ,
La tabla de datos actual todavía se refiere a mi tabla principal (!).
La activación de la espera (1) resolvió el problema, con una penalización de 1 segundo.
b) Para hacerlo más robusto (y más rápido), creé una referencia de tabla :::load_:myTable dentro de FUNC y usé dt=:::load_:myTable en lugar del enfoque original a través de la tabla de datos actual() .
Interesante:
El enfoque a través de :::load_:myTable funciona sin esperar (1).
¡Esto significa que ya puedo comunicarme con la nueva tabla antes de que obtenga la tabla de datos actual() !
Entonces, tal vez valga la pena investigar qué tan rápido las tablas de datos obtienen la tabla de datos actual ()
... y por qué hay diferencias.
Re: ejecutar script de tablaVolviendo al inicio de la discusión: la diferencia entre el ícono de reproducción verde y el botón "ejecutar" de la ventana de edición:
@Byron_JMP escribió:
Generalmente hacen lo mismo.
La flechita verde es más rápida, un clic.
: )
¡El problema se reduce al descubrimiento de que no hay UNA tabla de datos actual bien definida() !
Usando el botón verde de play y revisando las ventanas de resultados, se puede ver la siguiente secuencia:
1) el complemento abre la prueba e informa que la tabla de datos actual se cambió para probar
2) la tabla principal todavía piensa que check_current_data_table es la tabla de datos actual (!!!)
3) Después de esperar (0), lo sabe mejor y devuelve la prueba .
Por otro lado, si el script se inicia mediante el botón EJECUTAR en la ventana de edición, las 3 ventanas de resultados muestran la misma tabla que la tabla de datos actual() .
guión principal:
Names Default To Here( 1 );
Main Menu( "load_" );
win = new window("1 ",Text Box ("main table (1):\!n" ||
(current data table() << get name())));
wait(1);
win = new window("2 ",Text Box ("main table (2):\!n" ||
(current data table() << get name())));carga_:
Names Default To Here( 1 );
dt = open("C:\temp\test.csv");
Caption( {100, 200}, "postprocessing ...");
win = new window("addIn", text box("inside the addin:\!n" ||(current data table()<< get name())));
// win << moveWindow( 100, 100 );
Caption( remove );
Al profundizar más, se descubre que pequeños detalles como habilitar << moveWindow dentro del complemento o deshabilitar uno de los comandos de subtítulos tienen un efecto en el comportamiento.
Re: ejecutar script de tablaPor cierto el mismo problema:
¡No hay UNA tabla de datos actual bien definida() !
¿También fue el problema que desencadenó esta publicación: ThisDataTable()?
con la misma corrección de errores:
agregar esperar ( 0 )
delante de
dt = tabla de datos actual()!