用JSL設置列寬?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />有沒有辦法使用 JSL 設置列的顯示寬度?當我創建表時,默認情況下列太寬。我嘗試過玩設置列寬但它不起作用。
我知道列寬存儲在某處,因為如果我手動設置列寬,保存數據集,然後再次打開它,瞧,寬度會被保留。我只是不知道如何在 JSL 中做到這一點。
謝謝!
回复:用 JSL 設置列寬?這個小表達式將設置顯示寬度,以適應數據表的所有字符列中最長值的寬度,在您設置的最小和最大寬度內,通過使用您也可以設置的平均字符寬度。 通常,數字列默認具有良好的寬度,因此更改這些寬度也留給讀者作為練習。 我認為這個例程對於大型數據表來說會非常慢,所以在今天之前我沒有費心去編寫它,但事實證明它非常快,只需要幾秒鐘就可以在 22 個字符列上超過 200K 行的數據表上運行。
xpr_resizeCols = Expr(
Local( {list_widths, list_colNames, num_length, num_charWidth,num_maxWidth, num_minWidth },
num_charWidth = 6.5; // set number of pixels per character's average width
num_maxWidth = 400; // set maximum desirable column width
num_minWidth = 45; // set miniumum desirable column width
list_widths = {};
list_colNames = Current Data Table() << get column names( character );
For( i = 1, i <= N Items( list_colNames ), i++, // i = 1
list_temp = list_colNames[i] << get values;
num_length = 0;
For( j = 1, j <= N Items( list_temp ), j++,
If( Length( list_temp[j] ) > num_length,
num_length = Length( list_temp[j] )
)
);
Try( list_colNames[i] << set display width( Max( num_minWidth, Min( num_maxWidth, num_length * num_charWidth ) ) ) );
Insert Into( list_widths, num_length * num_charWidth );
);
);
Write(
"\!N\!tColumns resized to fit contents, within limits " || Char( num_minWidth ) || " to " || Char( num_maxWidth ) ||
" pixels."
);
);Global Pragmatica LLC® 是一家總部位於美國的 JMP 定制合作夥伴,提供定制 JSL 和 JMP 插件工作供聘用;如果您想討論一個項目,請隨時通過 [erin dot vang at globalpragmatica dot com] 與我聯繫。
回复:用 JSL 設置列寬?我已經嘗試了該線程中所有建議的解決方案,但沒有一個有效。我正在使用 JMP 13.2.1。
- 如果列標題超出您嘗試設置的寬度,“設置寬度”不會執行任何操作。
- 如果列標題超出您嘗試設置的寬度,則“設置顯示寬度”不會執行任何操作。
- 如果我將列命名為“xxx”等簡短名稱,將寬度設置為 5,將顯示寬度設置為 5,然後將列命名為“xxx”,則列寬將保持較窄。但是,一旦我使用代碼column("xxx") << Set Name("一些長列名");然後列的寬度會擴展以嘗試(未成功)適合列名稱。
因此,最初的問題仍然是:JMP 是否有辦法使用 JSL 設置列寬,或者我是否必須自己手動調整這數百列和數十個 JMP 文件的列寬?當您不需要在數十個文件中執行數百次時,告訴某人“手動執行即可”確實很容易。 
回复:用 JSL 設置列寬?彼得
版本 12 有一條新的專欄消息:設置顯示寬度。
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) ):
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) );
戴夫
回复:用 JSL 設置列寬?嗨,馬特
我可以設置列寬以適合幾列的最長標題和單元格內容嗎? 最近,我嘗試對單元進行著色以繪製晶圓圖,但我必須手動調整列的寬度。
謝謝!
用JSL設置列寬?對於這種情況,您可以使用短虛擬名稱來強製表觀寬度服從字段寬度。
dt = New Table( "test");
col=dt << New Column( "Curr Serious");
colname=col<<GET name=""></GET>
但是,通過設置字段寬度屬性來控製表格外觀並不是通用解決方案,也不能與通過拖動邊框手動更改列相媲美。 例如,如果寬度設置為比單元格內容少的字符,則顯示“###”或類似內容而不是值。
用JSL設置列寬?嗨馬特,
如果列標題很短,那就有效。但是,我的列名稱較長,並且您似乎無法將字段寬度設置為比列標題短的任何內容。例如:
dt = New Table( "test");
dt << New Column( "Curr Serious");
column("Curr Serious") << Get Field Width(); // default 10;
column("Curr Serious") << Set Field Width(30);
column("Curr Serious") << Set Field Width(3); // shrinks the column but not to 3
用JSL設置列寬?你好:
dt = New Table( "test");
dt << New Column( "new");
column("new") << Get Field Width(); // default 10;
column("new") << Set Field Width(30);
column('new") << Get Field Width(); // now shows 30;
Show Properties(:new); // log shows a large number of properties, including field width;
希望這可以幫助,
-馬特