수정중 같은 값을 중복시 알람을 표시하고 이전 값으로 변경

 

 



 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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("값이 중복됨");
        return false;
    }
    trace("cancolumnchange");
};
 
this.Dataset6_oncolumnchanged = function(obj:nexacro.NormalDataset,e:nexacro.DSColChangeEventInfo)
{
    trace("oncolumnchanged");
};
cs

 

 

 

중간에 자동으로 많은 컬럼을 변경 및 삭제 추가시 이벤트 끄는법

속도향상

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Exe 6-5
this.btn_Exe6_5_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
    //  cancolumnchange oncolumnchanged 이벤트 등을 끄기
    this.Dataset5.set_enableevent(false);
    
    // 많은 양을 처리시 이벤트가 계속 생긴다면 느려지기 때문에 끄고
    // 끝나면 켜야함
    for(var i=0;i<10;i++){
        this.Dataset6.setColumn(1"FULL_NAME""Modify2");
    }
    //  cancolumnchange oncolumnchanged 이벤트 등을 켜기
    this.Dataset5.set_enableevent(true);
};
cs

 

 

 

윈도우 닫기를 눌렀을때 코드

확인을 누를시 닫힘

 



 

 

Dataset4가 변경됨을 감지되었을때

이때는 return에 문자열을 넣어야 위처럼 확인 내용을 적용할 수 있음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
this.fn_checkdata = function(objDs)
{
    // 삭제된 로우가 몇개있으면 변경사항이 있어 true 반환
    if(objDs.getDeletedRowCount()>0){
        return true;
    }
    for(let i=0;i<objDs.rowcount;i++){
        var nRowType = objDs.getRowType(i);
        // 2 : 추가된것이 있음, 4 : 수정된것이 있음
        if(nRowType == 2 || nRowType == 4){
            return true;
        }
    }
    return false;
}
 
 
 
this.Exe_Dataset_onbeforeclose = function(obj:nexacro.Form,e:nexacro.CloseEventInfo)
{
    if(this.fn_checkdata(this.Dataset4)){
        return "값변경됨";
    }
};
cs