是什么启发了这个愿望清单请求?
总是编写或多或少复杂的脚本来“清理”我的数据表(删除表脚本、表变量、列属性......)
您希望看到什么改进?
提供简单的平台来清理数据表。这应该提供删除表脚本、表变量、列属性、行状态和所有不同修改的选项。在最佳情况下,用户可以决定删除哪些。其中一些可以实现到 Subset,但我觉得这也应该是单独的平台。
这个想法为什么重要?
可以更轻松地从现有数据表创建新的数据表,而无需携带不相关的信息。
根据具体情况,我可以选择:
- 手动执行这些
- 编写脚本(如果是自动化的话)
- 有时我会跳过清理,结果可能会得到一个有点混乱的数据表,但这不是问题,直到我共享表格
我很可能会编写一个插件(我已经开始了,但确实遇到了一个包含各种不必要功能的“小”功能蔓延)来执行这些特定的“元数据”清理任务,因为我经常这样做。
直到这个愿望得到足够的赞誉,这个脚本可能会有所帮助。
它为当前数据表创建一个脚本,并且根据设置删除脚本、列属性和添加行()表达式。
Names Default To Here( 1 );
removeScripts = 1;
removeColumnProperties = 1;
remove rows = 1;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << copy table script( "no data" );
tableScript = Eval( Eval Expr( Parse( Expr( Get Clipboard() ) ) ) );
tableScriptList = Substitute( Name Expr( tableScript ), Expr( New Table() ), Expr( List() ) );
If( removeScripts,
tableScriptList = Filter Each( {part}, tableScriptList, Not( Head( Part ) == Expr( New Script() ) ) )
);
tableScriptList = Transform Each( {part}, tableScriptList,
If(
Head( part ) == Expr( New Column() ) & removeColumnProperties,
Substitute( Name Expr( part ), Extract Expr( part, Set Property( Wild List() ) ), . ),
Head( part ) == Expr( Add Rows() ) & remove rows, .,
Name Expr( part )
)
);
newtableScript = Substitute( Name Expr( tableScriptList ), Expr( List() ), Expr( New Table() ) );
newtableScript;
这远非理想。
替换非常危险 - 它不仅替换用户想要替换的表达式,还替换所有匹配的表达式!
例如,脚本末尾剩余的任何列表将被 New Table () 替换!!!
表脚本中的任何new table()都将被List()替换 [然后在末尾被New table()替换:]
您知道有什么解决方法可以防止 JMP 这样做吗?
替补队长?
考虑到这个问题,我写下了这个愿望:
:folded_hands: 表达式索引:读写访问
一旦可用,我将更新脚本并使其更加健壮。