[Nexacro] 컴포넌트활용 DataSetExe 1~2 번

Gajun Choi·2022년 9월 13일
0

Nexacro

목록 보기
3/6

Dataset

  • 데이터를 테이블(2차원) 형태로 관리하는 오브젝트
  • 내부에서 사용하는 데이터로 컴포넌트와 바인딩하여 사용
  • 서버와의 통신시 데이터를 주고 받는 형식으로 사용
  • 데이터가 수정, 삭제되면 변경 전 내용을 Origin Buffer에 저장
  • Invisible Object에 생성
  • 더블 클릭하여 편집(Column, Row)
  • Application Information > Application Variables > Dataset 에서 글로벌 Dataset 조회 가능

1. Dataset 기본 기능

1) Property

  • enableevent, keystring, rowcount, rowposition, useclientlayout ...

2) Method

  • addColumn, addRow, insertRow, deleteRow, getColumn, setColumn, getOrgColumn,
    getDeletedColumn, filter, findRow, getAvg, getCaseAvg, clearData, reset,
    copyData, copyRow ...

3) Event

  • onload, cancolumnchange, oncolumnchanged, canrowposchange, onrowposchanged

2. Quiz

Exe1

(1) 데이터셋의 컬럼 개수와 레코드 개수, 컬럼명을 구하기

  • getColCount : 전체 Column 의 개수를 구하는 메소드
  • getRowCount : Row의 전체 개수를 반환하는 메소드 (필터링 되거나 삭제된 데이터 제외)
  • getColID : 전달된 인덱스에 해당하는 Column 의 ID 를 반환하는 메소드
  • getColumnInfo : 지정한 Column 의 ColumnInfo 객체를 반환하는 메소드

// Exe 1-1
this.btn_Exe1_1_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var nColCount = this.Dataset1.getColCount(); // this.Dataset1.colcount;
	var nRowCount = this.Dataset1.getRowCount(); // this.Dataset1.rowcount;
	trace("Col Count=" + nColCount + " : Row Count=" + nRowCount);	
	
	this.txtRtn1.set_value("Col Count=" + nColCount + " : Row Count=" + nRowCount);
    
	for(var i=0; i<nColCount; i++){
// 		var sColID = this.Dataset1.getColID(i);
// 		trace("Col ID=" + sColID);		// output 에 표시
		var objCol = this.Dataset1.getColumnInfo(i);	// 컬럼 정보 get
		trace(objCol.id + " : " + objCol.type + " : ")
	}

-- 결과

// Exercise 2 ================================================================
// Exe 2-1 : 단일 조건에 대한 1개의 인덱스만 반환
this.btn_Exe2_1_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
// 	var nRow = this.Dataset1.findRow("EMPL_ID", "KR120");	// 인덱스 값을 반환
// 	var sVal = this.Dataset1.getColumn(nRow, "FULL_NAME");	// 데이터 값 반환
	
	// 두 개의 변수를 lookup 함수를 통해 하나로 줄임 
	sVal = this.Dataset1.lookup("EMPL_ID","KR120","FULL_NAME");	// lookup( 컬럼명, 데이터, 새 컬럼을 통해서 얻은 FULL_NAME
	
    trace(sVal);	
	this.txtRtn1.set_value(sVal);	
};

// Exe 2-2 : 복합 조건에 대한 1개의 인덱스만 반환
this.btn_Exe2_2_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var nRow = this.Dataset1.findRowExpr("DEPT_CODE == 'K10' && SALARY <= 5000");	// Expression 을 활용
	var sVal = this.Dataset1.getColumn(nRow, "FULL_NAME");
	trace(sVal);	
	this.txtRtn1.set_value(sVal);	
};

// Exe 2-3 : 해당 조건을 만족하는 모든 컬럼 반환
this.btn_Exe2_3_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var sText = "";
	var arrRow = this.Dataset1.extractRows("DEPT_CODE=='K10'");
	for(var i=0; i<arrRow.length; i++){
		var sValue = this.Dataset1.getColumn(arrRow[i], "FULL_NAME");
		trace(sValue);
		sText += sValue + "\n";
	}
	
	this.txtRtn1.set_value(sText);
	// 2-3 extractRows -> findRow 함수로 변경한다면? 
	// var nCnt = this.Dataset1.getRowCount();   //iCnt 변수로 건수를 받아서 체크
	// for(var i=0;i<nCnt; i++){ 
	//     var nRow = this.Dataset1.findRow("DEPT_CODE","K10", i,-1);  //<-- startrow, endrow
	//     if(nRow >= 0){
	//         i = nRow ;
	//         trace(nRow + "===" + i + "==" + this.Dataset1.getColumn(i,"FULL_NAME"));
	//     }
	// } 
};

(2) 컬럼추가 - ID가 "COL_CHK" 인 STRING 컬럼을 추가


profile
개발하는헬창

0개의 댓글