重新运行“源”时自动复制表脚本你好,
我正在 Excel 中创建一个将不断更新的数据库。新行和新列将定期添加,现有行偶尔也会添加新数据。因此,我已开始使用“源”脚本来更新相应的下游 JMP 表。
我的问题是,在运行源脚本时,是否有办法将任何现有表脚本带到更新的表中?我有许多图形生成器脚本保存到 JMP 表中,并且希望每次运行源脚本时都自动将它们复制到新表中。我使用 JMP 版本 17。
谢谢你!
视窗回复:重新运行“源”时自动复制表脚本欢迎加入社区。
下面是将所有表脚本从一个数据表复制到另一个数据表所需的代码示例,减去源表脚本。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
names=dt<<GET table="" script="" names=""></GET>
<P>您必须将此方法添加到您的源脚本中,或将其作为单独的脚本运行来执行您想要执行的操作。</P>
<P>您可以在“帮助”下拉菜单下的“脚本索引”中找到此脚本中不同元素的详细信息和示例</P>回复:重新运行“源”时自动复制表脚本这是其他选择
Names Default To Here(1);
<BR />// Depending on your source script, there are different options of handling
// getting the reference to dt1 and dt2
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");<BR />
dt2 << Delete Scripts(dt2 << Get Table Script Names); // for demo purposes
wait(1); // for demo purposes
<BR />t_scripts = dt1 << Get Table Script Names;
Remove From(t_scripts, Contains(t_scripts, "Source"), 1);<BR />
For Each({t_script}, t_scripts,
Eval(EvalExpr(
dt2 << New Script(t_script,
Expr(dt1 << Get Script(t_script));
);
));
);
wait(0);回复:重新运行“源”时自动复制表脚本另一种方法:
升级到 JMP 18,对于所有授权用户均免费。
在 JMP 18 中,除了源脚本之外,还有一个更新脚本:

这将更新表本身,而不是创建新表。手动添加的脚本将保留。
“更新表”与“源脚本”相比的优点:
源脚本很“脆弱”——JMP 会在没有警告的情况下覆盖它们:
更新和连接:源脚本冲突
缺点:
更新表删除任何手动添加的列
https://community.jmp.com/t5/JMP-Wish-List/Wizard-to-update-Excel-files-in-place-no-code-solution/idc-p/761983/highlight/true#M5540
回复:重新运行“源”时自动复制表脚本我知道我刚刚又留下了一条评论,说我到处都能看到您的 JMP 帮助,真的很感激。但说真的。我到处都能看到您的帮助,它非常有用。感谢您为帮助人们所做的一切。