Activar y desactivar tablas de datos privadosPara mantener limpios muchos de mis guiones, utilizo mucho 'privado'. Sin embargo, si estoy resolviendo problemas con un script, tener tablas como privadas se interpone y necesito comentar y, con suerte, recordar descomentar mientras hago cambios para ver si funcionan.
¿Hay alguna manera, o JMP ya tiene una forma global de activar o desactivar las tablas privadas? En mi cabeza, podría tomarme el tiempo para hacer duplicados de mi código con y sin privado y vincularlo a una variable de prueba, pero esa no parece ser la mejor respuesta.
No estaba seguro de si había alguna idea sobre cómo hacerlo. ¡Gracias!
Automatización y secuencias de comandosRe: Activar y desactivar tablas de datos privados¡Eso es excelente, Vince! Es similar a lo que terminé haciendo, pero es mucho más elegante al permitir que la vista de datos funcione en ambos sentidos.
Re: Activar y desactivar tablas de datos privadosAcordado @Craige_Hales y @txnelson sobre esos puntos.@Ressel , la razón principal por la que suelo optar por tablas privadas es cuando tengo un script que hace cambios/actualizaciones/etc. en muchas tablas. Si se dejan solos, pueden ser muy llamativos en la pantalla frente a un usuario cuando las ventanas aparecen, desaparecen, etc. Si son invisibles, el usuario puede ver mucha actividad en la lista de Ventanas, lo que también puede ser una distracción.
Opto por mesas privadas la mayor parte del tiempo, ya que permiten la interfaz más limpia para el usuario con solo los pasos visuales necesarios. Dependiendo de la cantidad de mesas y la computadora de los usuarios, los beneficios de RAM también son una ganancia en la velocidad general.
Re: Activar y desactivar tablas de datos privadosJim tiene razón; una tabla privada no tiene una estructura de ventana del sistema operativo creada, mientras que una tabla invisible tiene una ventana que no se muestra. Puede haber un pequeño ahorro de CPU y memoria que podría sumar si hay 100 o 1000 de tablas.
La única vez que usé privado fue cuando escribí FileSnapper y quería que la aplicación se ejecutara silenciosamente sin perturbar el entorno JSL para ningún otro JSL que se ejecute. En su mayoría, no puede detectar la tabla de datos privados en absoluto. Tiene un nombre de columna que se entromete un poco.
Re: Activar y desactivar tablas de datos privadosNathan, ¿es esto útil en absoluto?
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
privateTable = Function({bool,dt},{default local},
table_name = dt << Get Name;
If(!bool & !(dt << HasDataView), // no table but you want one
print("making "||table_name||" public");
dt << New Data View;
Return(dt);
, // elif
bool & dt << HasDataView, // you have a table but want it private
print("making "||table_name||" private");
dt_sub = dt << Subset( All rows, Selected columns only( 0 ), "private" );
close(dt, no save);
dt_sub << Set Name(table_name);
return(dt_sub);
, // else just return what's given
print("passthrough");
return(dt);
)
);
dt = privateTable(1, dt); // should make it private
wait(2);
dt = privateTable(1, dt); // should do nothing
wait(2);
dt = privateTable(0, dt); // should do make it visible
wait(2);
dt = privateTable(1, dt); // should do make it private again
Re: Activar y desactivar tablas de datos privadosAhorrar RAM es el beneficio.Una tabla privada no crea ningún objeto visible.Todos esos objetos tendrían que ser asignados a la memoria si son visibles.
Re: Activar y desactivar tablas de datos privados¿Cuáles son exactamente los beneficios de usar tablas privadas? ¿Guardar memoria?
Re: Activar y desactivar tablas de datos privados¡Sí! Eso definitivamente está en mi radar. Tengo una biblioteca de funciones/utilidades. Guardo muchas de esas cosas a mano (y distribuyo), y cambiar al aspecto de funciones personalizadas es un plan a largo plazo para muchas de las funciones más dinámicas.
Re: Activar y desactivar tablas de datos privadosSi necesita esa función con frecuencia, puede beneficiarse de la creación de la función personalizada Cree funciones, transformaciones y formatos personalizados (jmp.com) . De esta manera, también puede ver la función personalizada directamente desde el índice de secuencias de comandos.
Re: Activar y desactivar tablas de datos privados¡Gracias a todos! Terminé haciendo lo siguiente que, aunque no es lo ideal, debería funcionar bastante bien. Creé una función y tengo una variable en la parte superior de mi script para básicamente activar/desactivar privado
seePrivateTables = 1;
unprivatizeTable = Function({bool,tableName},{default local},
If(bool == 1,
tableName << New Data View;
Return(tableName)
,
Return(tableName)
)
);
// ... various code
dt1 = dt << Summary(.... , private);
dt1 = unprivatizeTable(seePrivateTables, dt1);Siempre que recuerde llamar a esa función cuando cree nuevas tablas, debería poder activar y desactivar tablas privadas de forma masiva.
Re: Activar y desactivar tablas de datos privadosJMP realiza un seguimiento de las tablas visibles e invisibles. Puede vigilarlos en la ventana de inicio, por ejemplo. Las tablas privadas son rastreadas solo por el código que las crea. Si no puede cerrar una tabla privada antes de sobrescribir la variable JSL que mantiene su identificador, la tabla aún está en la memoria pero no se puede acceder a ella. Se cerrará cuando finalice JMP. (Ventana->CloseAllDataTables no puede encontrar las tablas privadas y no las cerrará).
También estoy bastante seguro de que JMP no expone una forma de convertir una tabla visible o invisible en privada. Puedes convertir una mesa privada en una invisible, si tienes el mango, así:
dtA = Open( "$SAMPLE_DATA/Big Class.jmp", private );
// getting the data box makes it invisible
b = dtA << New Data Box();
// then show window makes it visible
dtA << Show Window;
Desafortunadamente, la palabra clave invisible es una palabra clave y no se puede pasar como una variable, al menos para abrir(). No estoy seguro sobre el subconjunto, etc. Probablemente lo mejor que puede hacer es agregar una llamada a una función de usuario que haga algo como lo anterior después de cada punto en el que crea o abre una tabla.
Re: Activar y desactivar tablas de datos privadosEs posible que pueda hacer que la tabla privada sea visible utilizando << Nueva vista de datos. No estoy al 100% de lo que hace esto en este contexto, pero parece hacer visibles las tablas privadas y lo he usado para la depuración:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", private);
wait(2);
dt << New Data View;
no tengo idea de cómo volver a hacerlo privado, pero << Show Window(0); lo hará invisible al menos.
Re: Activar y desactivar tablas de datos privadosNo tengo conocimiento de poder activar y desactivar Privado, ya que requeriría la construcción sobre la marcha de todos los objetos de visualización en la memoria.Sin embargo, puede usar el mensaje Mostrar ventana para mostrar/ocultar tablas de datos normales o invisibles.
data table("Daily Blood Pressure")<<SHOW window=""></SHOW>