排序後如何更新表?大家好,
我有一個關於表格排序的問題。 我想按日期(位於 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>
因此,您可以檢查日誌文件以查看它是否提供信息。 如果您打開了任何依賴的圖形或表格,也許您需要重新考慮腳本的邏輯。 例如,是否可以在製作相關表格和圖表之前重新排序。
回复:排序後如何更新表格?您的數據表是否已記錄到以前的表中,因此無法更改?