Usar una variable para múltiples comandosHola a todos,
Estoy buscando una manera de usar una variable en lugar de comandos individuales en lugar de múltiples líneas de comando. Cuando ejecuto esto, se abre la ventana de Apilamiento en lugar de ejecutar los otros comandos incluidos en la variable. También intenté usar combinaciones de EVAL() y PARSE() pero no obtuve mejores resultados.
Pido disculpas si la terminología que he utilizado no es correcta.
¡Gracias por cualquier ayuda!
test_variable = "columns( :Column1, :Column2 ),
Source Label Column( \!"Label\!" ),
Stacked Data Column( \!"Data\!" ),
Move Columns( To First ),
Output Table ( \!"Test Output Table\!" )";
current data table () << Stack (test_variable);
Automatización y secuencias de comandosRe: Usar una variable para múltiples comandos
@jthi escribió:
Por lo general, puedes construirlos de otras maneras (expresiones) además de usar solo cadenas (y yo diría que si puedes, deberías hacerlo).
Un método es utilizar un marcador de posición ( _cols_ ) y luego reemplazarlo ( sustituirlo ) por su expresión preconfigurada, como aquí:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = Expr(Columns(:height, :weight));
mycommand = Expr(current data table () << Stack (_cols_, Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Move Columns( To First ),
Output Table ( "Test Output Table" )));
Eval (Substitute ( Name Expr(mycommand),Expr(_cols_), Name Expr (cols) ))
Es necesaria algo de "magia" de Expr() y Name Expr() para evitar que JMP ejecute expresiones en el momento equivocado [ Expr() ] - y para obtener acceso a la expresión ( Name Expr() ) que está almacenada dentro de una variable ( nombre ) en lugar del nombre en sí.
A primera vista, un usuario decidirá que es mejor vivir sin esta sobrecarga o usar Eval(Parse(String)) como solución alternativa. Pero es una buena idea invertir algo de tiempo aquí, por ejemplo con la ayuda de esta gran conferencia:
Uso de JSL para desarrollar aplicaciones sólidas y eficientes (UE 2018 415)
Re: Usar una variable para múltiples comandosPor lo general, puedes construirlos de otras maneras (expresiones) además de usar solo cadenas (y yo diría que si puedes, deberías hacerlo).
Re: Usar una variable para múltiples comandosElegí Stack porque parecía un ejemplo más simple de lo que estaba tratando de lograr. En última instancia, quería utilizar una variable como sustituto de un bloque de texto de comando para formatear un conjunto de gráficos de control.
Re: Usar una variable para múltiples comandos¿Qué estás tratando de hacer exactamente? ¿Usar las mismas selecciones en la pila varias veces?