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で列幅を設定しますか?このスレッドで提案されている解決策をすべて試しましたが、どれも機能しませんでした。JMP13.2.1を使用しています。
- 列タイトルが設定しようとしている幅を超えている場合、「幅の設定」は何も行われません。
- 列タイトルが設定しようとしている幅を超えている場合、「表示幅の設定」は何も行われません。
- 列に「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;
お役に立てれば、
-マット