Mi sento come se avessi fatto qualcosa nel modo più difficile che sembra dovrebbe essere un compito relativamente semplice.Mi chiedo se qualcun altro ha consigli su un approccio migliore.

Sto cercando di creare una tabella personalizzata come quella mostrata qui, in cui ciascuna voce nella colonna "Valore" può avere un numero diverso di cifre decimali.Nell'esempio seguente, "N" dovrebbe avere 0 cifre decimali, "Mean"/"SD"/"LCL (3SD)"/"UCL (3SD)" dovrebbe avere esattamente quattro cifre decimali, "Pp" dovrebbe avere esattamente due cifre decimali luoghi, ecc. - con eventuali zeri finali inclusi.Questi valori provengono da una tabella dati in cui i valori vengono immessi in colonne sulla prima riga con la voce di colonna "Stat" come intestazioni di colonna.
Inizialmente l'ho impostato come Table Box, con una String Col Box incorporata e una Number Col Box:
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] })
);Ma sembra che la casella Numero Col abbia una propria impostazione del formato numero che si applica a tutte le voci in quella casella.
Dopo molti tentativi ed errori, quello che ho scoperto che funziona è usare Char() o Format() (con formato/cifre decimali specificate) per convertire in primo piano i singoli elementi dal numero al formato carattere. per esempio,
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
quindi sostituendo Number Col Box con una seconda String Col Box e aggiungendo i valori convertiti come stringhe, ad esempio,
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] })
);C'è un modo più semplice che mi manca?
A parte:
- Oggi ho appreso che la funzione Format() converte i dati numerici in dati di carattere.Pensavo che fosse solo per cambiare il formato dei dati numerici.
- Oggi ho imparato che puoi aggiungere attributi di larghezza e posizione decimale a Char().Altrimenti taglierà gli zeri finali.