¿Establecer ancho de columna con JSL?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Hay alguna forma de establecer el ancho de visualización de una columna usando JSL?Cuando creo una tabla, por defecto las columnas son demasiado anchas.He intentado jugar con establecer ancho de columna pero no funciona
Sé que el ancho de la columna está almacenado en algún lugar, porque si configuro los anchos de columna manualmente, guardo el conjunto de datos y luego lo abro nuevamente, listo, los anchos se conservan.Simplemente no sé cómo hacerlo en JSL.
¡Gracias!
Re: ¿Establecer ancho de columna con JSL?Esta pequeña expresión establecerá el ancho de visualización para adaptarse al ancho de los valores más largos en todas las columnas de caracteres de una tabla de datos, dentro de los anchos mínimo y máximo que establezca, utilizando un ancho de carácter promedio que también puede establecer. Por lo general, las columnas numéricas tienen buenos anchos de forma predeterminada, por lo que cambiarlos también se deja como un ejercicio para el lector. Pensé que esta rutina sería terriblemente lenta para tablas de datos grandes, así que no me molesté en escribirla antes de hoy, pero resulta ser bastante rápida, ya que tarda solo unos segundos en ejecutarse en una tabla de datos con más de 200 000 filas en columnas de 22 caracteres.
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® es un socio de personalización de JMP con sede en EE. UU., que ofrece JSL personalizado y trabajo adicional de JMP para contratar; no dude en ponerse en contacto conmigo en [erin punto vang en globalpragmatica punto com] si desea hablar sobre un proyecto.
Re: ¿Establecer ancho de columna con JSL?He probado todas las soluciones sugeridas en este hilo y ninguna funciona.Estoy usando JMP 13.2.1.
- Establecer ancho no hace nada si el título de la columna excede el ancho que está tratando de establecer.
- Establecer ancho de visualización no hace nada si el título de la columna excede el ancho que está tratando de establecer.
- Si nombro la columna algo corto como "xxx", establezco el ancho en 5, establezco el ancho de visualización en 5 y luego dejo la columna con el nombre "xxx", entonces el ancho de la columna permanece estrecho.Sin embargo, tan pronto como uso el código column("xxx") << Set Name("Algún nombre de columna largo"); luego, el ancho de la columna se expande para intentar (sin éxito) ajustarse al nombre de la columna.
Entonces, la pregunta original permanece: ¿JMP tiene una forma de establecer el ancho de columna usando JSL, o tengo que ajustar manualmente los anchos de columna en estos cientos de columnas y docenas de archivos JMP yo mismo?Es muy fácil decirle a alguien que "simplemente lo haga manualmente" cuando no es usted quien tiene que hacerlo cientos de veces en docenas de archivos. 
Re: ¿Establecer ancho de columna con JSL?Pedro
La versión 12 tiene un nuevo mensaje de columna: Establecer ancho de pantalla.
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) ):
Try( Column(dtCopy,"Viable cell density") << Set Display Width(120) );
dave
Re: ¿Establecer ancho de columna con JSL?Hola Matt
¿Puedo configurar el ancho de la columna para que se ajuste al título más largo y al contenido de la celda para algunas columnas? Recientemente traté de colorear las celdas para dibujar mapas de obleas pero tengo que ajustar manualmente el ancho de las columnas.
¡Gracias!
¿Establecer ancho de columna con JSL?Para esa situación, podría usar un nombre ficticio corto para obligar al ancho aparente a obedecer el ancho del campo.
dt = New Table( "test");
col=dt << New Column( "Curr Serious");
colname=col<<GET name=""></GET>
Sin embargo, controlar la apariencia de la tabla configurando la propiedad de ancho de campo no es una solución general o comparable a cambiar manualmente la columna arrastrando el borde. Por ejemplo, si el ancho se establece en menos caracteres que el contenido de la celda, se muestra "###" o similar en lugar del valor.
¿Establecer ancho de columna con JSL?Hola Matt,
Eso funciona si el título de la columna es corto.Sin embargo, tengo nombres de columna más largos y parece que no puede establecer el ancho del campo en algo más corto que el encabezado de la columna.Por ejemplo:
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
¿Establecer ancho de columna con JSL?Hola:
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;
Espero que esto ayude,
-Mate