排序后如何更新表?大家好,
我有一个关于表格排序的问题。 我想按日期(位于 Date1 列中)对表进行排序,并且在满足特定条件后执行此操作。 但是,它不会对表进行排序和替换EL_summary排序后。 有必要提神吗? 我也延迟了一些,我认为需要等待一段时间。 当我不使用时替换表(1),创建并打开不同名称下的新表(我不想要的),并且该表中的数据再次未排序。 然而,在那之后,数据EL_summary似乎已更新和排序。 我将不胜感激指出我所缺少的东西。 此致
当前数据表( EL_summary );
if( N 行(EL_summary) > 0, EL_summary << 排序(by(:name("Date1")), 顺序( 升序 ), 替换表(1)));
等待(1);
回复:排序后如何更新表?您好,通过 JSL 使用选项对数据表进行排序的官方方法是什么替换表()?
如前所述,如果有打开的报告,脚本将崩溃并显示错误消息:

...即使图表不依赖于数据表中的顺序:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
dt<< Sort( By( :height ), Replace Table, Order( Ascending ));
将文本替换为以下内容怎么样:
不幸的是,在当前版本的 Jmp 中,无法对包含打开报告的表进行排序。
Jmp 无法替换现有表,因为有一些机会...嗯,您知道,报告窗口可能取决于以前的排序。 不幸的是,没有选项可以检查它 - 也没有选项可以忽略它。 所以脚本将在这里停止。

回复:排序后如何更新表?好的,我设法隐藏新的数据表。 该数据表是当前数据表,因此我通过使用禁用了其可见性
Current Data Table() << ShowWindow( 0 );
谢谢大家的支持。 此致。
回复:排序后如何更新表?您可以通过几种不同的方式来处理这个问题。
使数据表无法排序的输出可以移动到日志中进行显示,然后可以删除原始显示,这将允许进行排序。
您还可以创建一个不可见或私有的新数据表,这将阻止显示新数据表。在脚本索引中对数据表进行子集化时查找“不可见”或“私有”选项。
回复:排序后如何更新表?您好,谢谢您的建议!
我创建了一个 GUI,在从列表框中选择一项后需要进行排序。 之后,某些图片需要按照基于排序值的顺序显示在该 GUI 中。 实际上,JMP 没有提供任何有用的日志信息来指示问题的根源。 有没有办法隐藏或使排序后创建的新(和不需要的)数据表不可见? 这将是一些解决方法。
回复:排序后如何更新表?你好,
当没有打开图表时,此代码按预期执行:
Untitled = data table("Untitled.jmp");
if( N rows(Untitled) > 0, Untitled << sort(by(:name("Column 1")), Order( Ascending ), replace table(1)));
但是如果您打开任何图表,排序将无法工作,
Untitled <<DISTRIBUTION> 0, Untitled << sort(by(:name("Column 1")), Order( Descending ), replace table(1)));
</DISTRIBUTION>
查看日志文件,我们看到:
JMP cannot replace the existing table because there are report windows that depend on the previous ordering.
但是,如果我们删除替换表,它将执行而不会出错,但它将启动一个新的数据表,其中包含不需要的已排序行。
Untitled <<DISTRIBUTION> 0, Untitled << sort(by(:name("Column 1")), Order( Descending )));</DISTRIBUTION>
因此,您可以检查日志文件以查看它是否提供信息。 如果您打开了任何依赖的图形或表格,也许您需要重新考虑脚本的逻辑。 例如,是否可以在制作相关表格和图表之前重新排序。
回复:排序后如何更新表格?您的数据表是否已记录到以前的表中,因此无法更改?