본문 바로가기
넥사크로

[NexacroN] rowType 직접 바꾸기

by 네모세모동동 2024. 7. 24.

 

데이터를 삭제 버튼을 누를 때, 삭제되지 않고 상태 출력으로만 삭제 여부를 표현해주고자 한다.

 

먼저 그리드에서 삭제 여부를 표현해줄 STATUS 속성을 추가해주고 text의 expr(표현식)에서 rowType을 가져오도록 설정해준다.

rowType을 받아오기 위해 getRowType 이라는 dataset의 메소드를 사용해야 한다.

 

getRowType : 필터링 되어 보이지 않는 Row 를 제외한 범위에서 지정된 Row 의 타입을 반환하는 메소드

 

먼저 그리드의 status 부분에 rowType을 연결한다.

 

dataset.getRowType(currow) == 8 ? 'D' : ''

 

 

📍표현식을 작성할 때, 버튼을 눌러서 작성해도 되고 바로 text 부분에 expr: 을 붙이고 작성해도 된다!

 

 

 

setRowType(row인덱스, rowType)

 

삭제 버튼을 누르는 경우 타입을 바꾸고자 하므로 버튼 이벤트 함수로 작성했다.

 

rowType에는 타입에 해당하는 번호, 문자 모두 입력가능하다.

셋 중 어떤 방식으로 하든 상관없다!

 

this.ds_emp.setRowType(this.ds_emp.rowposition,8);

this.ds_emp.setRowType(this.ds_emp.rowposition, "D");

this.ds_emp.setRowType(this.ds_emp.rowposition, Dataset.ROWTYPE_DELETE);

 

this.btn_del_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	this.ds_emp.updatecontrol = false;
	this.ds_emp.setRowType(this.ds_emp.rowposition, 8);
	this.ds_emp.updatecontrol = true;
};

 

 

위 코드에서 udpatecontrol 속성을 변경해주는 이유는

실제로 데이터를 삭제하는 것이 아니라 변경을 통해 삭제된 것처럼 변경해줄 생각이기 때문에

rowType이 삭제가 아닌 '수정'된 상태로 인식해 직접 '삭제' 상태로 변경해주기 위해서 이다.


updatecontrol

DataSet의 데이터가 Insert/Update/Delete 되었을 경우, 각 RowType을 자동으로 변경할지에 대한 설정 속성이다.

 

true인 경우, 변경된 데이터에 대해 자동으로 변경하고

false인 경우, 자동으로 변경하지 않는다.

 


[출처]