2024년 4분기 신규기능(Ver 8.2.0.3~ )




Ver 8.2.0.3-20241010-14


1. (Method)doSave, getSaveJson, getSaveString 등의 저장 함수를 호출할 때, 사용자가 저장함수에서 설정한 인자(saveMode, col, validRequired)에 따라 유효성 검사를 진행하는 (Cfg)ValidCheck 추가

Cfg:{
ValidCheck: true // 저장 함수 호출 시 유효성 검사 실행
}


2. 유효성 검사 통과 실패 시 띄울 메세지를 설정하는 (Cfg)ValidateMessage 추가

Cfg:{
ValidateMessage : "유효성 검사 실패!" // 유효성 검사 통과 실패 시 설정한 문구를 출력
}

[실행 결과]



3. (Method)getRowValue 에 saveAttr 인자 추가

Row 내부에 기존에 선언한 컬럼값이 아닌 다른 데이터가 있는 경우 saveAttr:"추출할데이터key값" 을 선언하면 해당 데이터도 getRowValue 에서 리턴됩니다.

여러 개를 추출하고자 하는 경우 "," 를 구분자로 작성하면 됩니다.


// 현재 포커스 하고 있는 row의 값들을 가져오는데, 
// 선언한 컬럼은 아니지만 Test, abc 라는 이름의 데이터도 들고오겠다.
sheet.getRowValue({row: sheet.getFocusedRow(), saveAttr:"Test,abc"})

Ver 8.2.0.4-20241017-14


1. 동적으로 Foot 과 Head를 생성하는 (Method)showFixedRows 추가

메소드의 인자로 Head,Foot 의 object 객체가 들어갑니다.


[사용 예시]

// 1. Foot 행 1개 생성

var obj1 = {Kind : 'Foot', ... };

sheet.showFixedRows(obj1);


// 2. Foot 행 2개, Head 행 1개 생성

sheet.showFixedRows([

    {

        Kind:'Foot', 

      TextData: {

          'Value' : '커스텀 Foot행1', 'TextColor': 'green', 'Span': 4

      }

    },

    {

        Kind:'Head',

      TextData: {

          'Value' : '커스텀 Head행', 'TextColor': 'red', 'Span': 3, 'Color': 'yellow'

      }

    },

    {

        Kind:'Foot',

      Color: 'blue'

    }

  ]);


[예시 2번 실행 결과]



2. 동적으로 Formula를 추가하는 (Method)addFormula 추가

기존에는 동적으로 Formula를 추가하는 동작(컬럼을 추가하거나 등)을 설정하는 것이 복잡하고, 가끔은 불가능했습니다.

addFormula 를 사용 시 CanFormula 가 자동으로 true 로 설정되고, CalcOrder에 설정한 Formula 가 순차적으로 추가됩니다.


[사용 예시]

// 1. Row에 colorFormula 추가

var colorFormula = function (param) {

    if (param.Row && param.Row["IntData"] === 0) {

        return "#FFD9FA"

    }

}

// 데이터 행의 배경색을 조건에 따라 변경

sheet.addFormula(colorFormula, "", "", "Color");


// 2. Col 에 Formula 추가

var Formula = function (param) {

    if (param.Row["IntData"] > 100) {

        return true

    } else {

        return false

    }

}

// IntData의 값에 따라 체크박스 열의 체크 변경

sheet.addFormula(Formula, "", "CheckData", "", true);


[예시 1 실행 결과]



Ver 8.2.0.5-20241024-13


1. (Method)exportData 에 헤더만 머지하는 onlyHeaderMerge 옵션 추가

onlyHeaderMerge : 1(true) 로 설정 시, 시트의 데이터 영역의 머지를 강제로 제한하고 헤더 영역의 머지만을 엑셀에 반영합니다. 주의할 점은 merge 인자가 1로 설정되어야합니다.

(Method)down2Excel 의 onlyHeaderMerge 인자와 동일한 기능을 합니다.


[사용 예시]

sheet.exportData({

          merge: 1,                        // 시트 머지 반영

          onlyHeaderMerge: 1     // 헤더만 머지

});


[onlyHeaderMerge:0]



[onlyHeaderMerge:1]



2. 신규행 추가 시 Enum 의 값이 자동적으로 세팅되는 (Cfg)AutoSelectFirstEnum 추가

기존에 Enum 컬럼은 행 추가 시 값을 설정하지 않으면 빈값으로 추가되었습니다.

AutoSelectFirstEnum :1 설정 시 해당 셀에 값이 없다면 첫 번째 데이터로 자동 선택됩니다.


[기존]


[AutoSelectFirstEnum : 1]



Ver 8.2.0.6-20241031-13

Common.js New

1. 마우스 우클릭으로 출력되는 기본 컨텍스트 메뉴에 전체 체크, 전체 체크 해제 기능 추가 

ibsheet-common.js Ver 1.0.12-20241031-13 이상 버전이 필요합니다.



ibsheet.js New

1. (Cfg)SearchMode:3 에서 헤더 클릭 시 시트 소팅을 진행하지 않고 백엔드로 소팅 정보를 전송하도록 하는 (Cfg)ScrollPagingServerSort 옵션 추가

기존에는 sort 정보를 서버로 보내지 않고, 보여지는 화면에서 sort 가 이루어졌습니다. 

ScrollPagingServerSort : 1 설정 시 sort 정보를 서버로 보내, 받은 응답 데이터를 출력합니다.


자세한 과정은 아래와 같습니다.

sort 정보를 담아 서버로 전송 -> sort 정보로 DB에서 쿼리 실행 -> 실행된 쿼리를 js로 보냄(재조회와 비슷한 과정)


[서버로 보내지는 파라미터]



Ver 8.2.0.7-20241107-15

1. 유효성 검사 실행 시, 사용자가 설정한대로 유효성 검사를 실행할 수 있는 onValidate 이벤트 추가

유효성 검사 실행 시 발생하는 onValidate 이벤트가 추가되었습니다.

해당 이벤트 내부에서 다른 컬럼 조건에 따라 유효성 검사를 다르게 하는 등의 작업을 할 수 있습니다.

이벤트 내부에서 false 를 리턴하면 유효성 검사를 통과합니다.


[사용 예시]

event: {

      onValidate: function(evtParam) {

           // 컬럼이 텍스트 데이터면 유효성 검사 뛰어넘기

           if(evtParam.col != "TextData") return false; 

      

           // 앞 컬럼 가져오기

           var prevCol = sheet.getPrevCol(evtParam.col);

           // 앞 컬럼 값이 100이 넘는다면

           if(evtParam.row[prevCol] >= 100) {

              // 뒷 컬럼에 유효성 검사 실패 시 뜨는 툴팁을 넣고

              evtParam.row[evtParam.col + "ValidationError"] = "정수(Int)컬럼의 값이 100보다 큽니다.";

              // 유효성 검사에 걸리게 하기

              return true;

            }

      }

  }



2. (Method)saveCurrentInfo 호출 시 시트 아이디를 대신하여 커스텀 아이디를 설정하는 (Cfg)StorageKeyId 기능 추가

 saveCurrentInfo 메소드를 통해 시트의 정보를 저장하는 경우 현재 시트의 id를 기준으로 저장이 됩니다. 따라서 시트의 이름을 random 하게 생성하는 경우 saveCurrentInfo 자체를 사용하기가 불가능했습니다.

이를 보완하기 위해 (Cfg)StorageKeyId 가 추가되었습니다.

(Cfg)StorageKeyId :"원하는아이디" 를 설정하면 saveCurrentInfo 시 지정한 아이디로 저장이 됩니다.


[사용 예시]

Cfg:{
...
// 스토리지에 시트id 가 아닌 StorageKeyIdTest 로 저장
StorageKeyId: "StorageKeyIdTest",
...
}, ... 

[saveCurrentInfo 로 저장 결과]