DECIMAL 타입의 경우 컬럼 사이즈는 (전체자리수,소수점자리수) 형태로 설정하셔야 합니다.
일반적으로 데이터셋의 header 생성시 컬럼 타입과 사이즈를 지정해주게 되어 있는데,
이때 문법 오류나 잘못된 값으로 설정되는 경우 gauce.xml 또는 innoxync-default.xml 의 col-def 에 설정된 값으로 기본 적용됩니다.
데이터셋의 컬럼을 정의하는 부분에서 컬럼 타입과 사이즈를 어떻게 지정하셨는지 확인해보시기 바랍니다.
조회 후에 컬럼 사이즈가 변경되는 것은 서버 서비스 쪽에서 데이터셋 컬럼 정의를 하는 부분(put 또는 addDataColumn)이 있기 때문에 서비스를 타면서 데이터셋의 컬럼 생성시 컬럼 사이즈가 재세팅되기 때문입니다.
따라서 서비스에서 정의된 데이터셋 컬럼 정보를 클라이언트에서 재정의해주려면 조회가 완료된 시점(OnLoadCompleted)에 데이터셋 헤더를 재정의(SetDataHeader)해주시면 됩니다.
해당 컬럼의 자리수를 문법에 맞게 다시 설정해보시기 바랍니다.
예를 들어 20,2 로 설정할 경우 18자리+2자리(소수점)으로 전체자리수는 20자리를 사용할 수 있습니다.
만약 소수점을 입력하고 싶지 않다면 20,0 으로 설정하시면 됩니다.
참고로 가우스에서 지정 가능한 컬럼타입별 사이즈는 Java와 동일합니다.
INT 타입은 java의 int와 동일. 32비트 정수이므로 유효자리수는 9자리
BIGINT 타입은 java의 long과 동일. 64비트이므로 유효자리수는 18자리
DECIMAL 타입은 java의 double과 동일. 알아서 계산.
STRING 타입은 java의 string과 동일. 유효자리수는 6143자리(java는 6144byte이나 내부적으로 1byte를 사용함)
업무에 참고하세요.
* 수정일 : 2013-02-06
질문을 다시 읽어보니 답변이 좀 부족한 것 같아 약간 수정했습니다.
서버 서비스 쪽 컬럼 정의하는 부분과 SetDataHeader 사용시점에 대한 내용을 추가했습니다.
col-def 인데 charset으로 잘못 적어놔서 수정했습니다... ㅠㅠ
>답변 감사합니다.
>말씀하신대로 아래와 같이
>ds_data.SetDataHeader("SD_MO:STRING(12),CHK:STRING(2),CAT_CD:STRING(12),CAT1_CD:STRING(4),CAT2_CD:STRING(4),CAT3_CD:STRING(4),ROW1:STRING(60),ROW2:STRING(60),ROW3:STRING(60),ROW4:STRING(60),ROW5:STRING(16),ROW6:STRING(100),ROW7:DECIMAL(20),ROW8:DECIMAL(20)");
>
>조회시점에 컬럼타입을 변경했습니다.
>물론 변경후에 alert(ds_data.DataHeader); 해보면 변경된 대로 나옵니다.
>지금 변경하려고 하는 컬럼은 마지막 row7 ,row8 입니다.
>
>그런데 조회후에 해당 컬럼을 수정하려고 하면
>alert(ds_data.DataHeader);
>구문으로 타입을 찍어보면 다시 ~~앞부분 생략~~ROW7:DECIMAL(7,2),ROW8:DECIMAL(7,2) 로 나오고
>이전에 문의드린 내용처럼 값도 7자리로 줄어든 값으로 보입니다.
>
>조회후에 어떠한 이벤트가 발생된것 같은데요..
>아무리 찾아봐도 소스상에 그러한 구문은 안보이는것 같습니다.
>어떤 부분을 확인해봐야 할지요..
>
>그럼 답변 부탁드립니다.
>
>>실제 DB 값이 6자리가 있지만 컬럼선언시 size를 5로 설정하신 것 같습니다.
>>컬럼 사이즈를 확인하시기 바랍니다.
>>
>>컬럼사이즈 확인은 DataSet의 DataHeader 메소드 또는 ColumnSize 메소드를 사용하여 확인하시기 바랍니다.
>>
>>감사합니다.
>>
>>>게시판을 이용해 주셔서 감사합니다.
>>>다음양식에 맞게 입력해주세요.
>>>
>>>* 고객시스템명 :
>>>* GAUCE 버전 : 4.0
>>>* WAS 종류(WebLogic 등등) :
>>>* DB 종류 : oracle
>>>* 문의 유형(질문/요청/참조) :
>>>* 내용 :
>>> 가우스 그리드를 이용하여 기존에 생성된 그리드 입니다.
>>> 조회를 하면 금액이 제대로 보이는데 기존에 속성값은 Edit=None 이었습니다.
>>> 이 부분을 금액수정으로 바꾸려고 Edit=Numeric으로 했는데 이상하게 해당 컬럼을 double click 하고
>>> 입력하려면 숫자로 5자리 이상 입력이 안되네요..
>>> 뭔가 컬럼의 속성값을 주어야 하는지요?
>>> 금액 컬럼을 double click 하고 수정없이 나오면 이상하게도 금액이 6자리로 바뀝니다.
>>> 혹시 아시는분 있으시면 답변 기대하겠습니다.
>>>
>>
>