X-Internet/X-Platform

데이터셋 ROW_TYPE 검사

TRUE_SKY 2018. 2. 6. 09:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
 * 해당 데이터셋의 변경사항 여부 검사
 * @param ds {Dataset} : 검색할 데이터셋
 * @param chkTypeArray {String[]} : 체크할 rowtype - i:신규입력상태,u:수정상태,d:삭제상태
 * return 정의된 row type에 일치하는 데이터가 한 건이라도 존재하는 경우 : true, 없는경우 : false
 
 * ex1) fn_isUpdateChk(ds_list,["i","u","d"]);
 * ex2) fn_isUpdateChk(ds_list,["i","u"]);
 * ex3) fn_isUpdateChk(ds_list,["u"]);
*/
function fn_isUpdateChk(ds,chkTypeArray){
    var isUpdateYN = false// 리턴값
    var rowTypeArray = new Array(); // 비교할 rowType
    
    // 비교할 row type 정의
    for(var i = 0; i < chkTypeArray.length; i++){
        switch(chkTypeArray[i]){
            case "i" : // 등록
                rowTypeArray.push(Dataset.ROWTYPE_INSERT);
                break;
            case "u" : // 수정
                rowTypeArray.push(Dataset.ROWTYPE_UPDATE);
                break;
            case "d" : // 삭제
                rowTypeArray.push(Dataset.ROWTYPE_DELETE);
                break;
            default :
                break;
        } // End of switch
    } // End of for
    
    ds.updatecontrol = false;
    ds.enableevent = false;
    
    // row type 체크
    for(var row = 0; row < ds.rowcount; row++){
        var rowType = ds.getRowType(row);
        
        for(var i = 0; i < rowTypeArray.length; i++){
            if(rowType == rowTypeArray[i]){
                isUpdateYN = true;
                break;
            } // End of if
        } // End of for
        
        if(isUpdateYN){
            break;
        }
    } // End of for
    
    // 삭제 row 체크
    if(!isUpdateYN){
        for(var i = 0; i < rowTypeArray.length; i++){
            if(rowTypeArray[i] == Dataset.ROWTYPE_DELETE && ds.getDeletedRowCount() > 0){
                isUpdateYN = true;
                break;
            } // End of if
        } // End of for
    } // End of for
    
    ds.updatecontrol = true;
    ds.enableevent = true;
    
    return isUpdateYN;
}
 
cs