¿Cómo reutilizar/mover elementos visuales de Graph Builder de una tabla a otra (después de una actualización mediante JSL)?Hola a todos,
Estoy trabajando en JSL y he creado varias visualizaciones de Graph Builder en la Tabla A.
Más adelante en el script, actualizo o uno la Tabla A con la Tabla B (usando Tiempo como clave e IDENTIFICACIÓN como filtro); esto crea una nueva tabla (llamémosla Tabla Combinada ).
El problema es:
-
Los elementos visuales y las configuraciones del Generador de gráficos que realicé en la Tabla A no aparecen automáticamente en la Tabla combinada .
-
Quiero copiar o volver a aplicar esas mismas visualizaciones a la nueva tabla que resulta de la unión/actualización.
Reflexionando -
-
¿Existe alguna forma, basada en JSL, de transferir o volver a enlazar scripts de Graph Builder de una tabla a otra?
-
¿Cuál es el flujo de trabajo más fiable para esto si ciertos KPI se calculan solo sobre filas filtradas en función de ventanas de tiempo?
También probé el código que aparece a continuación, pero no veo que mt calcTable lo muestre en el panel superior izquierdo de la ventana de la interfaz gráfica de usuario.
scriptNames = dt_merged << Get Table Script Names;
Show(scriptNames);
// Loop through and copy each script to calcTable
For(i = 1, i <= N Items(scriptNames), i++,
scriptName = scriptNames[i];
scriptCode = dt_merged << Get Table Script(scriptName);
// Add the same script to calcTable
calcTable << Set Table Script(scriptName, scriptCode);
Show("Copied script:", scriptName);
);
Automatización y scriptingOrganización del contenidoCombinación y limpieza de datosRe: ¿Cómo reutilizar/mover elementos visuales de Graph Builder de una tabla a otra (después de una actualización mediante JSL)?Normalmente, copiar los scripts de las tablas se haría de esta manera, pero podría requerir modificaciones dependiendo de cómo sean esos scripts.
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt2 << Delete Scripts(dt2 << Get Table Script Names); // demo purposes
For Each({scriptname}, dt1 << Get Table Script Names,
s = dt1 << Get Script(scriptname);
Eval(EvalExpr(
dt2 << New Script(scriptname, Expr(NameExpr(s)))
));
);
También puedes usar Concatenate porque mueve scripts (y variables), pero podría interferir con otras cosas, así que yo usaría el bucle.
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt2 << Delete Scripts(dt2 << Get Table Script Names); // demo purposes
dt_temp = dt1 << Subset(Rows(1), private);
dt_temp << Delete Rows(1);
dt2 << Concatenate(
dt_temp,
"Append to first table"
);
Close(dt_temp, no save);