XPlatform이 아주 편하고 국내 SI환경에 적합한데, 고급기능으로 갈수록 무지 힘들어지는 경향이 있습니다. 그중하나가 동적그리드인데요. 공통 Library에 동적그리드 메쏘드가 입맛에 맞는 형태로 등록이 되어있다면 그냥 가져다가 쓰면 되는데, 보통 동적그리드는 공통 모듈에 잘 포함을 안시키더라구요. Lib에 없어도 Grid의 스크립트를 참조해서 원하는 그리드 스크립트를 변수와 조합해서 쓰시면 됩니다.

 

다만, 동적그리드 연동을 하려다보면 dataset의 onvaluechanged이벤트를 많이 쓰게되는데, 여기서 미리 주의를 해주셔야하는 부분이 있습니다.

 

동적 그리드에 데이타를 입히거나 그리드속성을 변경하다보면 데이타셋도 변경되는 로직이 필요하게 마련입니다. 데이타셋 변경할때, onvaluechanged이벤트를 타지 않게끔 다음과 같은 라인을 로직 시작전과 후에 넣어주시는걸 잊지마세요. 초창기때나, 아니면 종종 까먹고 엉뚱한 곳에서 디버깅하다가 시간 낭비하는 경우가 생깁니다. ^^

ds_abc.enableevent = false;

~~~~~~

로직

~~~~~~

ds_abc.enableevent = true;

XPlatform이 편리하긴 한데, 엑셀 세부 사항으로 요건이 나오기 시작하면 골치아파집니다. export를 했는데, (1,114.3)과 같은 값이 입력되어있으면 엑셀에서는 -1,114.3으로 나오게됩니다.

 

이거 해결하려고 지원센터에 문의(게시판)했더니, 여자 개발자분이 지원 담당자였는데, 엑셀의 고유기능이라 지원대상이 아니라고 하더군요. ㄷㄷㄷ

 

이 문제를 해결하려면 그리드 속성으로 해결할 수 밖에 없습니다. displaytype을 normal이나 number등이 아닌, "text"로 변경하셔서 엑셀에서 들어온 값 그대로 받아들이게 하는게 제일 속편합니다. 이거 알아내는데, 한참 걸렸네요(게다가 동적 그리드다보니) ㅋ 진작 답변에서 그렇게 안내해주셨더라면 좋았을텐데.

 

 

getRowType으로 선택된 행의 유형(초기, 추가, 수정, 삭제 등)을 파악하는데요.

그리드에 체크박스가 있는 경우(dataset과 연동) 데이타셋이 수정된 것으로 나옵니다.

이 경우, 이벤트에서 체크박스 클릭전과 후에 다음과 같은 처리를 해준다면 체크박스를 아무리 클릭해도 해당 row의 type을 변경하지 않게됩니다.

 

/*******************************************************************************
* 기      능   : ds_result의 cancolumnchange 이벤트
* 설      명   :
********************************************************************************/
function ds_result_cancolumnchange(obj:Dataset, e:DSColChangeEventInfo)
{
 if(e.columnid == "ROW_CHK" )
 {
  obj.updatecontrol = false; //체크박스만 클릭했을때는 dataset RowType 변경이 없도록 설정
 } 
}

/*******************************************************************************
* 기      능   : ds_result의 oncolumnchanged 이벤트
* 설      명   :
********************************************************************************/
function ds_result_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
{
 if(e.columnid == "ROW_CHK" )
 {
  obj.updatecontrol = true; //체크박스만 클릭했을때는 dataset RowType 변경이 없도록 설정했다가 변경후에는 다시 변경가능하도록 설정
 }
}

1 ··· 54 55 56 57 58 59 60 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!