新 JMP 用户的主要数据源始终是 Excel。 这些可能很混乱,例如可能用作手动输入 KPI 跟踪的数据库。
但是,Excel 加载项和 Excel 向导都没有提供从源更新文件的简单方法。
这是一个常见请求,可以在该论坛中多次找到,并且所有请求都需要编写脚本(请参见下面的示例)。
您可以看到初学者的反应是可以理解的,他们被拖入一个简单请求的复杂解决方案中。
更新列、添加新行、添加新列,所有这些都是复杂的概念,需要多个步骤并通过 JSL 或 Automation Builder 实现自动化。
JMP 需要包含一个向导来自动生成读取和更新当前数据表的脚本。
https://community.jmp.com/t5/Discussions/Automatically-update-quot-source-quot-file/td-p/324299
https://community.jmp.com/t5/Virtual-JMP-Users-Group/How-to-update-a-JMP-data-table-to-reflect-Excel-updates/td-p/228625
https://community.jmp.com/t5/Discussions/How-do-I-automatically-update-JMP-data-table-while-populate/td-p/247303
JMP 18 现在有此选项。但是,它会删除用户在第一次导入后创建的所有列。
更新必须处理不存在的列而不是删除它们,而只更新原始列(以及引用这些列的公式)。
@FN是的,这个反馈已经与开发人员分享。感谢您让我们知道该功能不符合您的预期。如果有任何计划更新,我会通知您。我暂时不考虑这个愿望,因为它似乎还没有完全实现。
@Sarah-Sylvestre ,只是为了确保这一点被跟踪并与开发人员共享。
JMP 18 有这个选项,但它仍然不是一键操作。现在它会删除用户在第一次导入后创建的所有列!
最后,它迫使用户学习 JSL 或手动执行重复任务。
jmp 开发人员为实现更新功能付出的努力真的很有趣。
在我们公司,我们已经非常接近找到解决方案了——使用这个Reread脚本:
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
这个简短的脚本基本上依赖于源脚本的功能,该脚本会在每次导入文件时自动生成。
我要求:
它比许多其他方法更有用!
...几乎完美。
但:
1) 不幸的是,这种方法存在一个巨大的问题 - JMP 中的一个“Bug”:
更新和连接:源脚本冲突
啊!!!
2) 不太严重:
如果用户对输入表执行手动步骤,导致其与当前数据表不兼容,
...他必须手动将这些处理步骤添加到源脚本中。
对于列的重命名,有一个更巧妙的方法:
:folded_hands: 列属性:列名别名
愿望清单优先级调查的候选人——试运行:
介绍JMP愿望清单优先级调查!