Définir la largeur de colonne avec JSL ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Existe-t-il un moyen de définir la largeur d'affichage d'une colonne à l'aide de JSL ?Lorsque je crée un tableau, par défaut les colonnes sont trop larges.J'ai essayé de jouer avec définir la largeur de la colonne mais ça ne marche pas.
Je sais que la largeur de colonne est stockée quelque part, car si je définis manuellement les largeurs de colonne, enregistrez le jeu de données, puis l'ouvrez à nouveau, le tour est joué, les largeurs sont conservées.Je ne sais pas comment le faire en JSL.
Merci!
Re : Définir la largeur des colonnes avec JSL ?Cette petite expression définira la largeur d'affichage en fonction de la largeur des valeurs les plus longues dans toutes les colonnes de caractères d'une table de données, dans les largeurs min et max que vous définissez, en utilisant une largeur de caractère moyenne que vous pouvez également définir. En règle générale, les colonnes numériques ont de bonnes largeurs par défaut, donc la modification de celles-ci est également laissée comme un exercice pour le lecteur. Je pensais que cette routine serait extrêmement lente pour les grandes tables de données, donc je n'ai pas pris la peine de l'écrire avant aujourd'hui, mais elle s'avère assez rapide, ne prenant que quelques secondes pour s'exécuter sur une table de données avec plus de 200 000 lignes sur 22 colonnes de caractères.
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® est un partenaire de personnalisation JMP basé aux États-Unis, proposant des compléments JSL et JMP personnalisés à la location ; n'hésitez pas à me contacter à [erin point vang at globalpragmatica point com] si vous souhaitez discuter d'un projet.
Re : Définir la largeur des colonnes avec JSL ?J'ai essayé toutes les solutions suggérées dans ce fil et aucune d'entre elles ne fonctionne.J'utilise JMP 13.2.1.
- Définir la largeur ne fait rien si le titre de la colonne dépasse la largeur que vous essayez de définir.
- Définir la largeur d'affichage ne fait rien si le titre de la colonne dépasse la largeur que vous essayez de définir.
- Si je nomme la colonne quelque chose de court comme "xxx", définissez la largeur sur 5, définissez la largeur d'affichage sur 5, puis laissez la colonne nommée "xxx", la largeur de la colonne reste étroite.Cependant, dès que j'utilise le code column("xxx") << Set Name("Un long nom de colonne"); puis la largeur de la colonne s'agrandit pour essayer (sans succès) de s'adapter au nom de la colonne.
Donc, la question initiale demeure : JMP a-t-il un moyen de définir la largeur de colonne à l'aide de JSL, ou dois-je ajuster manuellement la largeur de colonne sur ces centaines de colonnes et ces dizaines de fichiers JMP moi-même ?Il est très facile de dire à quelqu'un de "le faire manuellement" lorsque vous n'êtes pas celui qui doit le faire des centaines de fois sur des dizaines de fichiers. 
Re : Définir la largeur des colonnes avec JSL ?Pierre
La version 12 a un nouveau message de colonne : Définissez la largeur d'affichage.
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) ):
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) );
David
Re : Définir la largeur des colonnes avec JSL ?salut Matt
Puis-je définir la largeur de la colonne pour qu'elle s'adapte au titre le plus long et au contenu de la cellule pour quelques colonnes ? Récemment, j'ai essayé de colorer les cellules pour dessiner des cartes de plaquettes, mais je dois ajuster manuellement la largeur des colonnes.
Merci!
Définir la largeur de colonne avec JSL ?Dans cette situation, vous pouvez utiliser un nom factice court pour forcer la largeur apparente à obéir à la largeur du champ.
dt = New Table( "test");
col=dt << New Column( "Curr Serious");
colname=col<<GET name=""></GET>
Cependant, contrôler l'apparence du tableau en définissant la propriété de largeur de champ n'est pas une solution générale ou comparable au changement manuel de colonne en faisant glisser la bordure. Par exemple, si la largeur est définie sur moins de caractères que le contenu de la cellule "###" ou similaire s'affiche à la place de la valeur.
Définir la largeur de colonne avec JSL ?Salut Matt,
Cela fonctionne si le titre de la colonne est court.Cependant, j'ai des noms de colonne plus longs et il semble que vous ne puissiez pas définir la largeur du champ sur une valeur plus courte que l'en-tête de colonne.Par exemple:
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
Définir la largeur de colonne avec JSL ?Salut:
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;
J'espère que cela t'aides,
-Mat