Re: 如何在应用程序中对数据表进行排序?我不确定我是否正确理解了你的问题,你的脚本似乎不包含第 2 行中的某些字符 (")" 和 "<<")。
sortThisData = Function( {dt},
Try( newdt = dt << Sort( By( Column( snCol ), Column( dtCol ) ), Replace Table ), );
/* IF thrown */
if(contains(exception_msg[1], "JMP cannot replace the existing table"),
ex = New Window( "Alert",
<<MODAL></MODAL>Re: 如何在应用程序中对数据表进行排序?你好,
不确定缺少字符是什么意思。 但无论如何,即使将对上述函数的调用替换为简单的排序表,问题也是一样的:
DataTable1 << Sort (By( Column(snCol), Column(dtCol)), Replace Table);
我收到以下警报,即使 DataTable1 的唯一打开窗口是调用 Sort 函数的应用程序。

Re: 如何在应用程序中对数据表进行排序?对不起,我误解了你想做什么。 在 Application Builder 中对数据表进行排序似乎并不容易。
这不是一个聪明的解决方案,您可以先复制一个数据表,然后对数据表进行排序。 它创建另一个数据表,当它不被使用时,你应该关闭一个表。
original_dt = Current Data Table();
dt = original_dt << Subset( All rows, Selected columns only( 0 ), Link to original data table( 0 ), invisible );
dt << Sort( By( Column( dt, snCol ), Column( dt, dtCol ) ), Replace Table )
如何在应用程序中对数据表进行排序?我使用 JMP 应用程序生成器编写了一个相当复杂的 JSL 应用程序。 应用程序启动器提示用户选择列,然后我按所选列对数据进行排序,然后再继续处理和可视化。
如果数据集具有依赖的打开窗口,我需要为用户提供继续而不排序的选项(数据可能已预先排序)或退出脚本以让用户处理依赖的窗口。为此,我创建了以下函数:
sortThisData = Function ({dt},
try( dt << Sort (By( Column(snCol), Column(dtCol)), Replace Table) ,
/* IF thrown */
if (contains(exception_msg[1], "JMP cannot replace the existing table"),
ex = New Window( "Alert", <<MODAL></MODAL>
然而,似乎应用程序本身算作一个依赖的打开窗口! 即使没有其他窗口打开,我也无法对数据进行排序。
如何规避此问题并对数据进行排序? 我已经移动了调用 SORT 函数的时间,但它需要在按下启动器上的“确定”按钮之后和处理/可视化完成之前发生。
有什么建议么?
自动化和脚本编写质量和工艺工程