El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principalHola a todos,
Estoy un poco confundido sobre por qué el script de tabla no considera dinámicamente el conjunto de variables en el script principal. Como tal, las cifras obtienen valores estándar en lugar de selecciones dinámicas basadas en la ejecución del bucle for. Cualquier ayuda será apreciada. A continuación se muestra el script de tabla al que hago referencia en caso de que no se lo llame comúnmente script de tabla.

Eche un vistazo al script JSL principal a la izquierda, en el que el código resaltado funciona de forma dinámica. Cuando el "script vc" se guarda en la tabla de datos, el script se abre en el lado derecho de la captura de pantalla. Parece que el primer valor que "weights" y "counts" encuentran se establece para todos los bucles del bucle for en el que está integrado. ¿Hay alguna forma de hacer que esto sea dinámico? Solo he leído publicaciones sobre cómo convertir columnas en cadenas o una fórmula, pero no creo que se ajuste a este caso.

Se agradecería cualquier ayuda para modificar el código jsl principal de modo que el script guardado no codifique estos valores. ¡Gracias de antemano!
Automatización y scriptingAnálisis y modelado de datos básicosExploración y visualización de datosIngeniería de Calidad y ProcesosCompartir y comunicar resultadosVentanasRe: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principal¿Hay algunos valores específicos que desea evaluar pero no todos en su script vc?
Re: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principalDesde la parte superior izquierda, creo una tabla de datos con subconjuntos "vc depo summary subset" que, por cada bucle for, crea subconjuntos por una variable en este caso depo, pero a modo de ejemplo: depo = {"A", "B", "C"}. En el script jsl de la izquierda, crear subconjuntos por A da pesos = [50, 50, 50, 50, 50] y conteos = [16, 20, 19, 20, 20] y crear subconjuntos por B o C da pesos y conteos diferentes. El script de la izquierda funciona correctamente. Pero cuando abro el mismo script que está guardado en la tabla de datos, establece de forma predeterminada los pesos/conteos en los valores de A en lugar de dejar la variable (como está a la izquierda) que lleva los pesos/conteos correctos para B y C respectivamente. No estoy seguro de cómo mantenerlo como una variable en lugar de ver los valores codificados a la derecha.
Re: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principalSi entiendo bien, lo que quieres es evitar la evaluación de algunas de las variables. Una opción para lograrlo es utilizar varias Expr().
As you didn't share the script, I will try to use very simple example which hopefully demonstrates what you can do. Compare the script, table script and script which is inside frame box
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
script = EvalExpr(
vals = [55, 60, 70];
Eval(EvalExpr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = Expr(Expr(Expr(vals)))},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(Expr(Expr(Expr(vals)))), i++,
H Line(Expr(Expr(Expr(vals))));
);
);
);
))
);
Eval(EvalExpr(
dt << New Script("Test", Expr(Name Expr(script)));
));


Re: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principal¡Gracias Jarmo, funcionó!
¿Hay alguna razón por la que tenemos que encerrar tres veces la variable con tres funciones Expr() en lugar de solo una?
Re: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principalSí, así es como funciona la evaluación de expresiones en JMP ( Guía de scripting > Métodos de programación > Expresiones avanzadas, macros y listas "Colocación y descomposición de expresiones").
En este caso, ambos tienen EvalExpr al crear la expresión, que evaluará dos de ellas Y desean dejar una adicional para el script de la tabla, de modo que se mantenga como Expr en lugar de evaluarse (por lo que necesitamos tres en total). Hay otras formas de crear cosas como esta, pero es bueno aprender cómo agregar más Expr() a veces puede ser útil.
Creo que, por ejemplo, esto debería dar como resultado un script similar sin necesidad de triple Expr().
script = Substitute(
Expr(
vals = [55, 60, 70];
Eval(
Eval Expr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = _valsexpr_},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(_valsexpr_), i++,
H Line(_valsexpr_)
);
)
)
)
);
),
Expr(_valsexpr_), Name Expr(Expr(vals))
);
Re: El script de la tabla de datos no se actualiza dinámicamente para usar el nuevo valor en el script guardado, pero funciona desde el script jsl principal¿Por qué no simplemente?
script = Expr(
vals = [55, 60, 70];
Eval(EvalExpr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = Expr(vals)},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(Expr(vals)), i++,
H Line(Expr(vals));
);
);
);
))
);?