如何在通过 JSL 更新后,将 Graph Builder 可视化效果从一个表格移动到另一个表格?大家好,
我正在使用JSL ,并且已经创建了几个关于表 A 的Graph Builder 可视化图表。
在脚本的后面,我将表 A 与表 B 更新或连接(使用时间作为键, ID作为筛选条件)——这将创建一个新表(我们称之为合并表)。
问题是:
沉思 -
-
是否有基于 JSL 的方法将Graph Builder 脚本从一个表传输或重新绑定到另一个表?
-
如果某些关键绩效指标 (KPI) 仅基于时间窗口筛选后的行进行计算,那么最可靠的工作流程是什么?
我也尝试了下面的代码,但是我在 GUI 窗口的左上角面板中没有看到 mt calcTable 显示出来。
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);
);
自动化和脚本编写内容组织数据融合与清理回复:如何在通过 JSL 更新后,将 Graph Builder 可视化效果从一个表格移动到另一个表格?通常复制表格脚本的步骤大致如下,但根据表格脚本的具体内容,可能需要进行一些修改。
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)))
));
);
你也可以使用 Concatenate 函数,因为它会移动脚本(和变量),但可能会影响其他东西,所以我建议使用循环。
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);