2025년 4분기 신규기능(Ver 8.3.0.33 ~ )



Ver 8.3.0.33-20251002-16

1. StyleRowConfig에 버튼을 설정할 수 있는 Layout 옵션 추가 

시트 상단 혹은 하단에 별도의 행을 통해 시트의 스타일을 설정 할 수 있는 StyleRowConfig 속성에 스타일 행의 버튼 순서와 종류를 설정할 수 있는 Layout 옵션이 추가되었습니다.

ValueTypeDescription
LayoutArray스타일 행에 버튼의 순서와 종류를 설정합니다.
default: ["Init", "Save", "Load", "ApplyAll"]
Init: 초기화 버튼
Save: 저장 버튼
Load: 불러오기 버튼
ApplyAll: 전체 적용 버튼
InitAll: 전체 초기화 버튼


[사용 예시]

options.Cfg = {

  StyleRowConfig: {

    Visible: true,

    StorageType: 2,

    ServerUrl: "./ibsheet/styleInfo.jsp",

    AutoLoad: true,

    Themes: {

      Mono: "./assets/ibsheet/css/mono/main.css", // css 파일 내의 클래스를 key와 일치되도록 수정 필요

      IBGY: "./assets/ibsheet/css/gray/main.css"

    },

    Layout: ["Init", "Save", "Load", "InitAll"] // 초기화, 저장, 불러오기, 전체 초기화 버튼 추가

  }

};


[예시 소스 실행 결과]



Ver 8.3.0.34-20251016-16 

1. Formula의 계산이 발생하기 전 시점의 onBeforeRowFormula 이벤트 추가 

각 행에서 Formula가 실행되기 전 호출되는 이벤트인 onBeforeRowFormula 이벤트가 추가되었습니다.

리턴을 통해 Formula의 실행을 제어할 수 있습니다.

> 1(true)리턴 시 각 행에서 실행되는 실행되는 Formula 동작을 막습니다. 

**주의 : 해당 이벤트는 Formula 설정이 많을 수록 많이 호출되기 때문에 성능에 문제가 발생할 수 있습니다.


NameTypeDescription
sheetobject시트 객체
rowobjectFormula가 실행되는 데이터 로우 객체
colstringFormula가 실행되는 열이름
formulaNamestring실행되는 Formula이름
eventNamestring해당 이벤트 이름(onBeforeRowFormula)


options.Events = {

    onBeforeRowFormula:function(evtParam){

        // 첫번째 행이 아닐 때 Formula를 실행하지 않습니다.

        var sheet = evtParam.sheet;

        var datas = sheet.getDataRows();

        if (datas.length > 0) {

            var firstRow = sheet.getFirstRow();

            if (evtParam.row != firstRow) {

                return true;

            }

        }

    }

}


2. Filter행의 Defaults의 최대 너비를 설정할 수 있는 (Cfg) FilterDefaultsMaxWidth 추가

필터 행에서 Defaults 를 사용할 때 생성되는 필터 메뉴의 MaxWidth 를 설정합니다.

생성될 필터 메뉴의 width 가 설정하는 값보다 작은 경우에는 기존의 생성될 width 가 우선되고, 설정하는 값보다 큰 경우에 필터 메뉴의 너비 축소 및 가로 스크롤이 생성됩니다.


options.Cfg = {

    FilterDefaultsMaxWidth: 500

};


3. getSaveJson 사용 시 null값을 ""이 아닌 null로 추출할 수 있는 (Cfg)PreserveNull 옵션 추가 

사용자가 데이터를 null로 기입한 경우 시트 객체에 null 값 그대로 바인딩하고, getSaveJson으로 데이터 추출시 데이터를 ""이 아닌 null 값 그대로 추출합니다.

ValueDescription
0사용자가 데이터를 null로 기입해도 getSaveJson으로 데이터 추출할 때는 데이터가 ""으로 추출됨 (default)
1사용자가 데이터를 null로 기입한 경우 getSaveJson으로 데이터 추출할 때 데이터가 null 값 그대로 추출됨

options = {

    Cfg :{

        PreserveNull: 1, // 사용자가 데이터를 null로 기입한 경우 getSaveJson으로 데이터를 추출할 때 데이터가 null 값 그대로 추출됨

        ...

    }

};



Ver 8.3.0.35-20251023-16 

1. Group시 정렬 여부를 제어할 수 있는 (Cfg) GroupSort 옵션 추가 

기본적으로 ibsheet8은 Group 시 자동으로 데이터가 정렬이 되도록 동작합니다.

Group 시에 데이터를 자동으로 정렬하지 않도록 설정하는 옵션인 Cfg.GroupSort 옵션이 추가되었습니다.

GroupSort:false 로 설정 시 자동 정렬이 이뤄지지 않습니다.


[사용 예시]

options.Cfg:{

     GroupSort:false // 그룹 시 정렬하지 않음

}


2. (Cfg) UseFilterDialog 설정 시 세부 사항을 설정할 수 있는 옵션 제공 

UseFilterDialog 설정 시 최상단 입력 필터를 숨길지 여부, 높이, ZIndex를 조절할 수 있도록 인자 값으로 object를 설정할 수 있게 추가 되었습니다.

object 설정 시 자동으로 UseFilterDialog 는 기능을 사용한다고 인식합니다.


[options 로 설정할 수 있는 값]

ValueDescription
HideInputFilter
UseFilterDialogInputFilterArea

데이터 필터 다이얼로그 최상단의 입력 필터를 숨길지 여부를 설정합니다.
true: 데이터 필터 다이얼로그를 오픈할 때, 다이얼로그 최상단에 입력 필터를 숨깁니다.
false: 데이터 필터 다이얼로그를 오픈할 때, 다이얼로그 최상단에 입력 필터를 포함합니다. (default: false)
Height
UseFilterDialogItemArea

데이터 필터 다이얼로그 아이템 영역의 높이를 조정합니다. (default: 180)
ZIndex시트의 (Cfg) ZIndex와 무관하게 필터 다이얼로그의 Zindex를 조정합니다.

[사용 예시]

UseFilterDialog: {

   HideInputFilter: true, // 데이터 필터 다이얼로그 내부의 텍스트 필터 다이얼로그 태그를 표시하지 않는 옵션

   Height: 150, // 데이터 필터 다이얼로그 오픈 시점의 높이를 조정하는 옵션

   ZIndex: 9999, // 데이터 필터 다이얼로그의 ZIndex 값을 조정하는 옵션

},


Ver 8.3.0.37-20251030-14 

1. 시트의 넓이가 css 클래스에 설정된 height나 width로 설정되는 (Cfg) UseClassStyle 추가 

시트에 class 속성이 설정되어 있는 경우, 해당 class에 지정된 CSS에서 height와 width 값을 읽어 시트 생성 시 너비와 높이에 적용하는 UseClassStyle이 추가되었습니다.

너비와 높이가 적용되는 우선순위는 style속성 > class속성 > 기본 값 순으로 적용됩니다.

각 항목에 설정된 값이 없을 경우, 다음 순서로 우선순위가 넘어갑니다.

너비는 100%, 높이는 800px를 기본값으로 갖습니다.


주의 : 이 기능은 단일 Class 정보만을 대상으로 동작합니다.


[사용 예시]

options.Cfg = {

    UseClassStyle: true, // 시트 div에 style 정보가 없을 경우, class에 선언된 css 클래스들을 확인하여 width와 height를 시트 너비와 높이에 적용

};


2. (Method)showFilterDialog에 필터다이얼로그을 설정할 수 있는 opt인자 추가 

showFilterDialog에 필터 다이얼로그의 상세 설정을 설정할 수 있는 opt 인자가 추가되었습니다.

지정 가능한 옵션은 상단 input 검색창 표현 여부, 높이, z-index 값이 있습니다.


[사용 예시]

sheet.showFilterDialog({

    opt: {

      HideInputFilter: true,

      Height: 50,

      ZIndex: 9999,

    }

});



Ver 8.3.0.38-20251106-15 

1. 터치 스크롤 여부를 제어할 수 있는 (Cfg) TouchScrolling 추가 

모바일 환경에서 시트 바디 영역 터치 스크롤을 막는 (Cfg) TouchScrolling 기능 추가되었습니다.
 디폴트는 1이며 0을 설정할 경우 모바일에서 시트 영역 터치 스크롤이 동작하지 않습니다. 

ValueDescription
0모바일 환경에서 시트 바디 영역 터치 스크롤이 동작하지 않습니다.
1모바일 환경에서 시트 바디 영역 터치 스크롤이 동작합니다. (default)

[사용 예시]

options = {

    Cfg :{

        TouchScrolling: 0, // 모바일 환경에서 시트 바디 영역 터치 스크롤을 막습니다.

        ...

    }

};




2. rerender, renderBody가 debounce로 동작하는 (Cfg) DebounceRender 추가 

rerender, renderBody 호출 시 너무 자주 호출되는 경우(루프문에서 한번 루프 돌 때마다 호출되는 등) 성능 향상을 위해 debounce를 걸어 호출하도록 설정할 수 있는 DebounceRender 속성이 추가되었습니다.


[사용 예시]

options = {

    Cfg :{

        DebounceRender: 1, // `rerender`, `renderBody` 호출시 debounce를 걸어 호출합니다.

        ...

    }

};


3. getSaveJson 같은 추출 api에서 Added: 1, Deleted: 1 인 행을 제외할 수 있는 (Cfg)ExcludeAddDelStatus 추가 

행 추출 함수 사용 시 상태가 Added 이면서 Deleted 인 행의 추출 제외 여부를 설정할 수 있는 ExcludeAddDelStatus 속성이 추가 되었습니다.

기본 동작은 0(사용 안함, 추출됨) 이고 1(사용, 추출 제외) 로 설정 시 해당 상태인 행이 추출되지 않습니다.

저장 관련 데이터 추출 함수 (getSaveJson, getSaveString, doSave) 호출에 적용 됩니다.


[사용 예시]

options = {

  Cfg:{

    ExcludeAddDelStatus: 1   // Added:1, Deleted:1 인 행 추출 제외

  }

};