MaximumValue/MinimumValue 마이그레이션

6. 기타

MaximumValue,MinimumValue 마이그레이션

IBSheet.onBeforeCreate 이벤트에서 onEndEdit 이벤트를 공통 정의 함으로써 구현 가능합니다.

아래 내용을 참고해 주세요.

  1. ibsheet-common.js 에 onBeforeCreate 이벤트를 다음과 같이 정의 합니다.
_IBSheet.onBeforeCreate = function(init) {
    //event 공통 정의
    init.options.Events = init.options.Events || {};
    
    // 개별 화면에서 선언한 onEndEdit가 있는 경우, orgEndEdit에 저장
    if(typeof init.options.Events.onEndEdit != "undefined") {
      init.options.Events.orgEndEdit = init.options.Events.onEndEdit;
    }

    // onEndEdit 이벤트 공통 정의
    init.options.Events.onEndEdit = function(evt) {
      // 컬럼에 MinimumValue 가 정의 돈 경우
      if (typeof evt.sheet.Cols[evt.col].MinimumValue != "undefined") {
        if (evt.sheet.Cols[evt.col].MinimumValue > Number(evt.raw)) {
          alert(
            "입력 가능한 최소값은" +
              evt.sheet.Cols[evt.col].MinimumValue +
              "입니다."
          );
          // 편집창을 빠져나가지 못하게 함
          return true;
        }
      }

      // 컬럼에 MaximumValue가  정의 된 경우
      if (typeof evt.sheet.Cols[evt.col].MaximumValue != "undefined") {
        if (evt.sheet.Cols[evt.col].MaximumValue < Number(evt.raw)) {
          alert(
            "입력 가능한 최대값은" +
              evt.sheet.Cols[evt.col].MaximumValue +
              "입니다."
          );
          return true;
        }
      }

      // 개별화면에서 정의한 onEndEidt가 있는 경우
      if(typeof init.options.Events.orgEndEdit != "undefined") {
        return init.options.Events.orgEndEdit(evt)
      }
    }
    return init;
  }
  1. 시트 생성시 IBSheet7 제품과 동일하게 MaximumValue, MinimumValue를 정의하여 사용합니다.
const initSheet = {
    Cols:[
        {Header:"이익", Type: "Int", Name:"income", MinimumValue:1000 }, // 값은 1000 이상 입력 가능
        {Header:"손해", Type: "Int", Name:"loss", MaximumValue:0 }  // 값은 0 이하 입력 가능
        ...
    ]
}
IBSheet.create({
    id: "mySheet",
    el: "sheetDIV",
    options: initSheet
})