打开和关闭私有数据表为了保持我的许多脚本干净,我经常使用“私人”。 但是,如果我正在对脚本进行故障排除,则将表设置为私有会妨碍我,我需要注释掉并希望在我进行更改时记得取消注释以查看更改是否有效。
有没有办法,或者 JMP 是否已经有一种全局方式来打开或关闭私人表? 在我的脑海中,我可以花时间在有和没有私有的情况下复制我的代码并将其绑定到一个测试变量,但这似乎不是最好的答案。
不确定是否有关于如何做到这一点的任何想法。 谢谢!
脚本回复:打开和关闭私有数据表我不知道能够打开和关闭 Private,因为它需要在内存中即时构建所有显示对象。但是,您可以使用 Show Window 消息来显示/隐藏正常或不可见的数据表。
data table("Daily Blood Pressure")<<SHOW window=""></SHOW>回复:打开和关闭私有数据表您可以使用 << New Data View 使私有表可见。 在这种情况下,我不是 100% 这样做的,但它似乎使私有表可见,并且我已将其用于调试:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", private);
wait(2);
dt << New Data View;
不知道如何再次将其设为私有,但是 << Show Window(0);至少会让它不可见。
回复:打开和关闭私有数据表JMP 跟踪可见和不可见表。 例如,您可以在主窗口中密切关注它们。 私有表仅由创建它们的代码跟踪。 如果在覆盖持有其句柄的 JSL 变量之前未能关闭私有表,则该表仍在内存中但无法访问。 它将在 JMP 终止时关闭。 (Window->CloseAllDataTables 找不到私有表,不会关闭它们。)
我也很确定 JMP 不会公开将可见或不可见表私有化的方法。 如果你有把手,你可以把一张私人桌子变成一张隐形桌子,像这样:
dtA = Open( "$SAMPLE_DATA/Big Class.jmp", private );
// getting the data box makes it invisible
b = dtA << New Data Box();
// then show window makes it visible
dtA << Show Window;
不幸的是,隐形关键字是一个关键字,不能作为变量传递,至少到 open()。 不确定子集等。可能您能做的最好的事情是在您创建或打开表的每个点之后添加对执行类似上述操作的用户函数的调用。
回复:打开和关闭私有数据表感谢大家! 我最终做了以下事情,虽然不理想,但应该可以很好地工作。 我创建了一个函数并在我的脚本顶部有一个变量来基本上打开/关闭私有
seePrivateTables = 1;
unprivatizeTable = Function({bool,tableName},{default local},
If(bool == 1,
tableName << New Data View;
Return(tableName)
,
Return(tableName)
)
);
// ... various code
dt1 = dt << Summary(.... , private);
dt1 = unprivatizeTable(seePrivateTables, dt1);只要我记得在创建新表时调用该函数,我就应该能够批量打开和关闭私有表。
回复:打开和关闭私有数据表如果您经常需要该功能,您可能会从创建自定义功能中受益创建自定义函数、转换和格式 (jmp.com) .这样你也可以直接从脚本索引中看到自定义函数。