• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 2053
2011.08.04 (15:04:01)
데이터를 처리해주는 컴포넌트는 DataSet과 LogicalTr컴포넌트입니다.
Grid는 데이터셋에 담긴 데이터를 표형태로 표현해주는 UI컴포넌트입니다.
따라서 유니크한 값을 입력하려면 그리드에서 조건을 주려고 하는 것보다는 데이터셋의 컬럼을 KEY컬럼으로 지정해주는 편이 낫습니다.

1. 서비스단에서 데이터셋의 컬럼을 생성할 때 TB_KEY로 지정하는 방법
참조 : GAUCE API의 GauceDataColumn의 TB_KEY
예) dSet.put("partno", rs.getString("partno"), 20, GauceDataColumn.TB_KEY);

2. 화면단에서 데이터셋의 컬럼을 재정의하는 SetDataHeader메소드를 사용하는 방법
참조 : 컴포넌트매뉴얼의 DataSet > Method > SetDataHeader
예) ds1.SetDataHeader("partno:STRING(20):KEYVALUETYPE,partnm:STRING(40),price:DECIMAL(10.2)");

키컬럼으로 지정된 컬럼은 수정이 불가능하고, 중복 데이터가 들어갈 경우 50019 에러가 발생합니다.
따라서 errorcode가 50019일 때 OnDataError이벤트 등에서 처리해주면 됩니다.
예) <script language=JavaScript  for=ds1  event=OnDataError()>
        if(ds1.ErrorCode == '50019'){
           alert('중복 입력 불가');
        } else {
           alert("Error Code : " + ds1.ErrorCode + "n" +"Error Message : " + ds1.ErrorMsg);
        }
     </script>


>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 : 다이소아성산업
>* GAUCE 버전 : 4.0
>* WAS 종류(WebLogic 등등) :
>* DB 종류 : ORA
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>   그리드에서 주민번호를 조회하고 저장하려고 합니다.
>   조건은
>   1)Rowstatus == 1 입력일때
>   데이타셋을 돌고 값이 있으면 "이미저장된 주민번호입니다. 수정해주세요"
>   2)Rowstatus == 3 수정일때
>   "주민번호는 수정될수 없습니다."
>
>   이런식으로 만들고 있습니다.
>
>   지정된값을
>   tbds_hr0000s1.NameString(tbds_hr0000s1.RowPosition,"RRNO")  
>   RowPosition으로 잡으니까
>   저장되기전에 여기저기 아무곳이나 선택하고 저장하면 제대로 동작이 안되네요
>  
>  질문) 그리드에서만 입력, 수정, 삭제 하려고 합니다.
>  RowPosition말고 다른방법이 없을까요?
>  
>  
>      
 
Tag List
XE Login