關於資料錶框中的製表、排序、顏色單元格的 JSL 問題大家好,社區,我的目的是透過製表創建多個表,對每個表中的目標列從大到小進行排序,透過新視窗將它們放在一起,並以綠色顯示第一行資料。以下是我使用大類樣本資料進行操作的方法,但遇到了一些我無法弄清楚原因的問題:
1.排序視窗保持開啟狀態,並不真正執行排序
2.列表平台保持開放
3. 將儲存格放入新視窗中的資料錶框後,不知道如何為其著色
以下是我的 JSL:
Open( "$SAMPLE_DATA/Big Class.jmp" );
Data Table( "Big Class.jmp" ) << Tabulate();
Local( {obj},
obj = Data Table( "Big Class.jmp" ) << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Analysis Columns( :height ) ),
Row Table( Grouping Columns( :name ) )
)
);
dt1 = obj << Make Into Data Table;
obj << Close Window;
);
dt1 << Sort(
By( :"sum(height)"n ),
Replace Table,
Order( Descending )
);
Data Table( "Big Class.jmp" ) << Tabulate();
Local( {obj},
obj = Data Table( "Big Class.jmp" ) << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Analysis Columns( :weight ) ),
Row Table( Grouping Columns( :name ) )
)
);
dt2 = obj << Make Into Data Table;
obj << Close Window;
);
dt2 << Sort(
By( :"sum(weight)"n ),
Replace Table,
Order( Descending )
);
nw = new window("summary", H list box(data table box(dt1), data table box(dt2)));
自動化和腳本回覆:JSL 資料錶框中製表、排序、顏色單元格問題可能是與命名空間相關的問題(您正在使用本地)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
obj = dt << Tabulate(
Show Control Panel(0),
Add Table(Column Table(Analysis Columns(:height)), Row Table(Grouping Columns(:name)))
);
dt1 = obj << Make Into Data Table;
obj << Close Window;
dt1 << Sort(By(:"sum(height)"n), Replace Table, Order(Descending));
obj = dt << Tabulate(
Show Control Panel(0),
Add Table(Column Table(Analysis Columns(:weight)), Row Table(Grouping Columns(:name)))
);
dt2 = obj << Make Into Data Table;
obj << Close Window;
dt2 << Sort(By(:"sum(weight)"n), Replace Table, Order(Descending));
nw = New Window("summary", H List Box(Data Table Box(dt1), Data Table Box(dt2)));
回覆:JSL 資料錶框中製表、排序、顏色單元格問題多謝!
我嘗試過,但仍然遇到排序平台開啟的問題,並沒有真正採取任何行動。
如果我逐行運行程式碼,它可以工作,但不知道為什麼在運行整個程式碼時會失敗...
回覆:JSL 資料錶框中製表、排序、顏色單元格問題以下是我如何讓您的程式碼發揮作用的方法:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//Data Table( "Big Class.jmp" ) << Tabulate();
//Local( {obj},
obj = Data Table( "Big Class.jmp" ) << Tabulate(
Show Control Panel( 0 ),
Add Table( Column Table( Analysis Columns( :height ) ), Row Table( Grouping Columns( :name ) ) )
);
dt1 = obj << Make Into Data Table;
obj << Close Window;
//);
dt1 << Sort( By( :"sum(height)"n ), Replace Table, Order( Descending ) );
// Color the cells in row 1
Current Data Table( dt1 );
:name << color cells( "green", 1 );
:"Sum(height)"n << color cells( "green", 1 );
//Data Table( "Big Class.jmp" ) << Tabulate();
Local( {obj},
obj = Data Table( "Big Class.jmp" ) << Tabulate(
Show Control Panel( 0 ),
Add Table( Column Table( Analysis Columns( :weight ) ), Row Table( Grouping Columns( :name ) ) )
);
dt2 = obj << Make Into Data Table;
obj << Close Window;
);
dt2 << Sort( By( :"sum(weight)"n ), Replace Table, Order( Descending ) );
// Color the cells in row 1
Current Data Table( dt2 );
:name << color cells( "green", 1 );
:"sum(weight)"n << color cells( "green", 1 );
// The only way I know to copy cell colors in a data table to a display
// window, is to move the data table with the colored cells to a journal
// Then it can be copied into a display object in a display window.
// I repeat the operation twice in the code below
nw = New Window( "summary", hls = H List Box() );
intJr = New Window( "x", <<JOURNAL></JOURNAL>