나는 비교적 간단한 작업이어야 할 것처럼 보이는 뭔가를 더욱 어려운 방식으로 수행해 온 것 같은 느낌이 듭니다.다른 사람이 더 나은 접근 방식에 대한 조언을 갖고 있는지 궁금합니다.

여기에 표시된 것과 같은 사용자 정의 테이블을 만들려고 합니다. 여기서 "값" 열의 각 항목은 서로 다른 소수 자릿수를 가질 수 있습니다.아래 예에서 "N"에는 소수점 이하 자릿수가 0개 있어야 하고, "Mean"/"SD"/"LCL (3SD)"/"UCL (3SD)"에는 소수점 이하 자릿수가 정확히 4개 있어야 하며, "Pp"에는 소수점 이하 자릿수가 정확히 2개 있어야 합니다. 장소 등 - 뒤에 오는 0이 포함됩니다.이러한 값은 "통계" 열 항목을 열 머리글로 사용하여 첫 번째 행의 열에 값이 입력되는 데이터 테이블에서 가져옵니다.
원래 저는 이것을 String Col Box와 Number Col Box가 포함된 Table 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] })
);하지만 Number Col Box에는 해당 상자의 모든 항목에 적용되는 고유한 숫자 형식 설정이 있는 것 같습니다.
많은 시행착오 끝에 Char() 또는 Format()(형식/소수점 지정)을 사용하여 개별 항목을 숫자에서 문자 형식으로 미리 변환하는 것이 효과가 있다는 것을 알았습니다. 예:
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
그런 다음 Number Col Box를 두 번째 String Col Box로 바꾸고 변환된 값을 문자열로 추가합니다. 예:
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] })
);내가 놓친 더 쉬운 방법이 있습니까?
곁에:
- 오늘은 Format() 함수가 숫자 데이터를 문자 데이터로 변환하는 함수를 배웠습니다.나는 이것이 숫자 데이터의 형식을 변경하기 위한 것이라고 생각했습니다.
- 오늘은 Char()에 너비와 소수점 이하 자릿수 속성을 추가할 수 있다는 것을 배웠습니다.그렇지 않으면 후행 0이 잘립니다.