JSL로 열 너비를 설정하시겠습니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JSL을 사용하여 열의 표시 너비를 설정하는 방법이 있습니까?테이블을 만들 때 기본적으로 열이 너무 넓습니다.가지고 놀아보았습니다 열 너비 설정 하지만 작동하지 않습니다.
열 너비가 어딘가에 저장되어 있다는 것을 알고 있습니다. 열 너비를 수동으로 설정하고 데이터 세트를 저장한 다음 다시 열면 너비가 보존되기 때문입니다.JSL에서 수행하는 방법을 모르겠습니다.
감사해요!
Re: JSL로 열 너비를 설정하시겠습니까?이 작은 표현식은 또한 설정할 수 있는 평균 문자 너비를 사용하여 설정한 최소 및 최대 너비 내에서 데이터 테이블의 모든 문자 열에서 가장 긴 값의 너비에 맞게 표시 너비를 설정합니다. 일반적으로 숫자 열은 기본적으로 좋은 너비를 가지므로 너비를 변경하는 것도 독자의 연습 과제로 남겨둡니다. 나는 이 루틴이 큰 데이터 테이블에 대해 엄청나게 느릴 것이라고 생각했기 때문에 오늘 전에는 작성하지 않았지만 매우 빠르다는 것이 밝혀졌습니다. 22자 열에 200,000개 이상의 행이 있는 데이터 테이블에서 실행하는 데 몇 초 밖에 걸리지 않습니다.
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]으로 연락주세요.
Re: JSL로 열 너비를 설정하시겠습니까?이 스레드에서 제안된 솔루션을 모두 시도했지만 그 중 아무 것도 작동하지 않습니다.JMP 13.2.1을 사용하고 있습니다.
- 너비 설정은 열 제목이 설정하려는 너비를 초과하는 경우 아무 작업도 수행하지 않습니다.
- Set Display Width는 열 제목이 설정하려는 너비를 초과하는 경우 아무 작업도 수행하지 않습니다.
- 열 이름을 "xxx"와 같이 짧게 지정하고 너비를 5로 설정하고 표시 너비를 5로 설정한 다음 이름이 "xxx"인 열을 그대로 두면 열 너비가 좁은 상태로 유지됩니다.하지만 코드를 사용하자마자 column("xxx") << Set Name("긴 열 이름"); 그런 다음 열의 너비가 확장되어 열 이름에 맞게 (성공하지 못함) 시도합니다.
따라서 원래 질문은 그대로 남아 있습니다. JMP에 JSL을 사용하여 열 너비를 설정하는 방법이 있습니까, 아니면 이러한 수백 개의 열과 수십 개의 JMP 파일에서 열 너비를 직접 수동으로 조정해야 합니까?수십 개의 파일에 대해 수백 번 수행해야 하는 사람이 아닌 경우 누군가에게 "수동으로 수행"하라고 말하는 것은 정말 쉽습니다. 
Re: JSL로 열 너비를 설정하시겠습니까?베드로
버전 12에는 새로운 열 메시지가 있습니다. 디스플레이 너비를 설정합니다.
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) ):
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) );
데이브
Re: 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;
도움이 되었기를 바랍니다,
-매트