decode는 그리드의 expression이므로 문자형이든 숫자형이든 모두 적용됩니다.
실제로 데이터셋의 헤더타입과 컬럼속성을 어떻게 지정하셨는지 확인을 해봐야 정확한 가이드를 할 수 있습니다.
데이터셋 컬럼의 데이터형은 1컬럼당 1데이터형만 지정 가능합니다.
즉 숫자타입 데이터와 string타입 데이터를 한 컬럼에 동시에 표현은 불가능하다는 의미입니다.
말씀하신대로 문자형으로 형변환을 하게 되면 천단위표시나 소수점표시, 또는 계산컬럼 등이 있을 경우 오동작의 우려가 있기 때문에 이 방법은 잘 사용하지 않습니다.
따라서 2번째 방법인 숫자형 컬럼의 데이터를 그리드의 value속성을 사용하여 decode로 표시해주는 방법을 사용합니다.
데이터셋의 숫자형 데이터의 컬럼을 그리드 상에서 value에서 decode로 디스플레이하면 된다는 의미입니다.
예를 들어, 다음과 같이 컬럼을 지정한 경우
<C>ID=R_amt name="Result" value={decode(R_amt,0," ",R_amt)}</C>
R_amt컬럼의 타입이 숫자형일 경우 value={decode(R_amt,0," ",R_amt)} 로 지정하여 0이 들어오면 공백문자로 표현해주는 방법을 사용하면 됩니다.
이 경우 해당 컬럼의 데이터는 숫자형이고 실제로 값은 0이 들어있는 상태에서 단순히 그리드 상에서 공백문자로 표현해주는 것입니다.
단, value로 지정된 컬럼은 가상 컬럼이 되므로 해당 컬럼의 데이터 수정은 불가능합니다.
첨부된 예제를 참고하세요.
>말씀하신 아래 방법을 사용했더니
>문자형 필드인 경우는 DECODE명령이 잘 작동이 되지만,
>금액과 같은 숫자형 필드에는 DECODE명령 자체를 무시하고 금액을 뿌려주네요.
>금액을 문자형으로 받으면 천단위구분기호등을 변환해주는 문제도도 있어서
>가능하면 DECODE문이 작동했으면 좋겠는데,
>숫자필드는 말씀하신 방법으로 되지를 않네요.
>
>===============================================================
>
>
>
>>DataSet의 컬럼 타입이 Number라면 그리드 상에서 null데이터로 표현하는 것은 구조적으로 불가능합니다.
>>
>>굳이 사용하려면 데이터셋에 담을 때 String으로 형변환을 해주거나,
>>단순히 디스플레이만 하려는 의도라면 value로 값을 강제로 세팅하는 방법을 쓰면 됩니다.
>>단, value를 사용하는 경우 해당 컬럼은 가상 컬럼이 되어 수정할 수 없습니다.
>>
>>ex) <C>ID=R_amt name="Result" value={decode(R_amt,0,"",R_amt)}</C>
>>
>>
>>>게시판을 이용해 주셔서 감사합니다.
>>>다음양식에 맞게 입력해주세요.
>>>
>>>* 고객시스템명 : 매출분석
>>>* GAUCE 버전 : 가우스 닷넷 5.0
>>>* WAS 종류(WebLogic 등등) :
>>>* DB 종류 : 오라클
>>>* 문의 유형(질문/요청/참조) :
>>>* 내용 :
>>>
>>>
>>>쿼리를 해올때 A라는 필드의 값이 Null이고 숫자타입인 경우에
>>>그리드에는 ''값이 아닌 0값이 표시됩니다.
>>>
>>>쿼리해온 값이 null일때는 0값이 아니라 ''값으로 표시할 수 있을까요?
>>>
>>>
>>
>