Siento que he estado haciendo algo de una manera muy difícil que parece que debería ser una tarea relativamente sencilla.Me pregunto si alguien más tiene algún consejo sobre un mejor enfoque.

Estoy intentando crear una tabla personalizada como la que se muestra aquí, donde cada una de las entradas en la columna "Valor" puede tener un número diferente de decimales.En el siguiente ejemplo, "N" debe tener 0 decimales, "Media"/"SD"/"LCL (3SD)"/"UCL (3SD)" debe tener exactamente cuatro decimales, "Pp" debe tener exactamente dos decimales lugares, etc., con los ceros finales incluidos.Estos valores provienen de una tabla de datos donde los valores se ingresan en columnas en la primera fila con la entrada de la columna "Estadísticas" como encabezados de columna.
Originalmente configuré esto como un Table Box, con un String Col Box y un Number Col Box integrados:
nw = New Window( "nw", tb = Table Box(
scb = String Col Box( "Stat", {}),
ncb = Number Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);Pero parece que el cuadro Number Col Box tiene su propia configuración de formato de número que se aplica a todas las entradas en ese cuadro.
Después de muchas pruebas y errores, lo que descubrí que funciona es usar Char() o Format() (con formato/lugares decimales especificados) para convertir los elementos individuales de formato de número a carácter por adelantado. p.ej,
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
luego reemplace el cuadro de columna numérica con un segundo cuadro de columna de cadena y agregue los valores convertidos como cadenas, por ejemplo,
nw = New Window( "nw", tb = Table Box(
scb1 = String Col Box( "Stat", {}),
scb2 = String Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);¿Hay alguna manera más fácil que me falta?
Aparte:
- Hoy aprendí que la función Format() convierte datos numéricos en datos de caracteres.Pensé que esto era sólo para cambiar el formato de los datos numéricos.
- Hoy aprendí que puedes agregar atributos de ancho y posición decimal a Char().De lo contrario, eliminará los ceros finales.