J'ai l'impression d'avoir fait quelque chose de très difficile qui semble être une tâche relativement simple.Je me demande si quelqu'un d'autre a des conseils sur une meilleure approche.

J'essaie de créer un tableau personnalisé comme celui présenté ici, dans lequel chacune des entrées de la colonne "Valeur" peut avoir un nombre différent de décimales.Dans l'exemple ci-dessous, "N" doit avoir 0 décimale, "Mean"/"SD"/"LCL (3SD)"/"UCL (3SD)" doit avoir exactement quatre décimales, "Pp" doit avoir exactement deux décimales. lieux, etc. - avec tous les zéros à droite inclus.Ces valeurs proviennent d'un tableau de données où les valeurs sont saisies dans des colonnes sur la première ligne avec l'entrée de colonne "Stat" comme en-tête de colonne.
À l'origine, j'ai configuré cela comme une boîte de table, avec une boîte de colonnes de chaîne et une boîte de colonnes de numéros intégrées :
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] })
);Mais il semble que la boîte Numéro Col ait son propre paramètre de format numérique qui s'applique à toutes les entrées de cette boîte.
Après de nombreux essais et erreurs, ce que j'ai trouvé qui fonctionne, c'est d'utiliser Char() ou Format() (avec le format/décimales spécifiés) pour convertir les éléments individuels du format numérique au format caractère à l'avance. par exemple,
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
puis en remplaçant la Number Col Box par une deuxième String Col Box et en ajoutant les valeurs converties sous forme de chaînes, par exemple,
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] })
);Existe-t-il un moyen plus simple qui me manque ?
De côté:
- Aujourd'hui, j'ai appris que la fonction Format() convertit les données numériques en données caractères.Je pensais que c'était juste pour changer le format des données numériques.
- Aujourd'hui, j'ai appris que vous pouvez ajouter des attributs de largeur et de décimale à Char().Sinon, il supprimera les zéros à droite.