Come riutilizzare/spostare gli elementi visivi di Graph Builder da una tabella all'altra (dopo l'aggiornamento tramite JSL)?Ciao a tutti,
Sto lavorando in JSL e ho creato diverse visualizzazioni Graph Builder sulla Tabella A.
Più avanti nello script, aggiorno o unisco la Tabella A con la Tabella B (utilizzando Tempo come chiave e ID come filtro): ciò crea una nuova tabella (chiamiamola Tabella unita ).
Il problema è:
-
Gli elementi visivi e le impostazioni di Graph Builder che ho creato nella Tabella A non vengono visualizzati automaticamente nella Tabella unita .
-
Voglio copiare o riapplicare le stesse visualizzazioni alla nuova tabella risultante dall'unione/aggiornamento.
Riflettendo -
-
Esiste un modo basato su JSL per trasferire o riassociare gli script di Graph Builder da una tabella all'altra?
-
Qual è il flusso di lavoro più affidabile se determinati KPI vengono calcolati solo su righe filtrate in base a finestre temporali?
Ho provato anche il codice qui sotto, ma non vedo mt calcTable che lo mostra nella finestra GUI nel pannello in alto a sinistra.
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);
);
Automazione e scriptingOrganizzazione dei contenutiCombinazione e pulizia dei datiRe: Come riutilizzare/spostare gli elementi visivi di Graph Builder da una tabella all'altra (dopo l'aggiornamento tramite JSL)?Di solito, copiare gli script delle tabelle sarà simile a questo, ma potrebbe richiedere delle modifiche a seconda dell'aspetto di tali script.
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)))
));
);
Puoi anche usare Concatenate perché sposterà gli script (e le variabili) ma potrebbe interferire con qualcos'altro, quindi userei il ciclo
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);