Jam's story

넥사크로17 - 컴포넌트 활용 3 본문

Nexacro17

넥사크로17 - 컴포넌트 활용 3

애플쩀 2023. 11. 25. 21:37

 

 Property
enableevent, keystring, rowcount, rowposition, useclientlayout…

 Method
addColumn, addRow, insertRow, deleteRow, getColumn, setColumn, getOrgColumn, getDeletedColumn, filter, findRow, getAvg, getCaseAvg, clearData, reset, copyData, copyRow…

 Event
onload, cancolumnchange, oncolumnchanged, canrowposchange, onrowposchanged

 

 

화면 넘기기 

stepindex 로 인덱스를 지정해준다 

 

 

사용자가 변경한 데이터를 저장하는 방법 

this.Exe_Dataset_onbeforeclose = function(obj:nexacro.Form,e:nexacro.CloseEventInfo)
{
	if(this.fn_checkdata(this.Dataset4)){
	return "변경된 데이터가 존재합니다. 닫으시겠습니까? "
	}
};

 

칼럼의 데이터 변경 

this.btn_Exe4_2_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	this.Dataset4.setColumn(1, "FULL_NAME", "Nexacro");
	var nType = this.Dataset4.getRowType(1);
	trace("Update Rowtype: " + nType);
	this.txtRtn2.set_value("Update Rowtype: " + nType);
};

- setColumn(row, colid,value)

  • row: 값을 설정할 행의 인덱스입니다.
  • colid: 값을 설정할 열의 식별자입니다. 열의 이름이나 인덱스를 사용할 수 있습니다.
  • value: 설정할 값입니다.

변경전 행 찾기 

// Exe 4-3
this.btn_Exe4_3_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var sCurData = this.Dataset4.getColumn(1, "FULL_NAME");
	var sOrgData = this.Dataset4.getOrgColumn(1, "FULL_NAME");	
	trace("Cur Data=" + sCurData + " : Org Data=" + sOrgData);	   
	this.txtRtn2.set_value("Cur Data=" + sCurData + " : Org Data=" + sOrgData);
};

getColum (row, column) : 현재컬럼  

getOrgColum () : 변경전 오리지널 컬럼  

 

넥사크로의 행 유형 

  • 0 (Dataset.ROWTYPE_NORMAL): 변경 없음. 일반적으로 데이터 로드 후의 상태.
  • 1 (Dataset.ROWTYPE_INSERTED): 신규 추가된 행.
  • 2 (Dataset.ROWTYPE_UPDATED): 기존 행이 수정된 행.
  • 3 (Dataset.ROWTYPE_DELETED): 삭제된 행.
  • 4 (Dataset.ROWTYPE_CURRENT): 현재 활성화된 행.

 

변경유무  확인 

// Exe4 - Data Check
this.btn_Exe4_Check_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	this.fn_checkdata(this.Dataset4);
};



this.fn_checkdata=function(objDs){

	if(objDs.getDeletedRowCount()>0){
			return true;
			alert("삭제");
	}
	for(var i=0; i<objDS.rowcount; i++){
		var nRowType=objDs.getRowTyep(i);
		if(nRowType==2 || nRowType==4){
			this.alert("신규/변경");
			return true;

		}
	}
		return false;
}

 

 

데이터 복사 메소드 

// Exe 5-1
this.btn_Exe5_1_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{	
	//데이터만 복사 ,타입복사X 
	this.Dataset5.copyData(this.Dataset4);
	this.Grid5.createFormat();
};

// Exe 5-2
this.btn_Exe5_2_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	//데이터도 복사, 타입도 복사
	this.Dataset5.assign(this.Dataset4);
	this.Grid5.createFormat();
};

 

 

조건걸어 특정 행 복사 

// Exe 5-3
this.btn_Exe5_3_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var nFromRow = this.Dataset4.findRow("EMPL_ID", "KR040");
	var nToRow   = this.Dataset5.addRow();
	this.Dataset5.copyRow(nToRow, this.Dataset4, nFromRow);	
};

 

조건걸어 복사 

// Exe 5-4
this.btn_Exe5_4_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	var nFromRow = this.Dataset4.findRow("EMPL_ID", "KR210");
	var nToRow   = this.Dataset5.addRow();
	var sCol = "EMPL_ID=EMPL_ID, FULL_NAME=FULL_NAME";	
	this.Dataset5.copyRow(nToRow, this.Dataset4, nFromRow, sCol);
};

 

 

 수정 전 중복검사 

// Exercise 6 ================================================================
this.Dataset6_cancolumnchange = function(obj:nexacro.NormalDataset,e:nexacro.DSColChangeEventInfo)
{
// 	var nCnt=obj.findRowExpr("FULL_NAME =='"+e.newvalue +"' && currow != "+e.row);
// 	if(nCnt>=0){
// 		this.alert("Data 중복");
// 		return false; 
// 	}
	trace("cancolumnchange");
};

this.Dataset6_oncolumnchanged = function(obj:nexacro.NormalDataset,e:nexacro.DSColChangeEventInfo)
{
	trace("oncolumnchanged");
};

중복검사는 cancolumnchange에 로직을 넣는 것이 효율적이다 

 

 

 데이터 변경시 이벤트 끄기 

// Exe 6-5
this.btn_Exe6_5_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	this.Dataset6.set_enableevent(false);
	for(var i=0; i<10; i++){
	this.Dataset6.setColumn(i, "FULL_NAME", "Modify2");
	}
	this.Dataset6.set_enableevent(true);
};

데이터셋 이벤트를 잠시 비활성화하여 불필요한 이벤트 발생을 방지하고 성능을 향상시키는 용도

'Nexacro17' 카테고리의 다른 글

넥사크로17 - popupdiv  (4) 2023.11.26
넥사크로17 - 컴포넌트활용4 그리드  (1) 2023.11.26
넥사크로 17 - 컴포넌트 활용 2  (2) 2023.11.25
넥사크로17 데이터통신  (0) 2023.11.19
넥사크로 17 - 데이터 바인딩  (1) 2023.11.17
Comments