IBSheet7의 객체 생성 단계는 다음과 같습니다.
createIBSheet(혹은 createIBSheet2)함수를 이용하여 기본 시트 객체 생성SetConfig(환경 설정), InitHeaders(헤더 설정), InitColumns(열 설정) 세 함수를 호출하여 시트를 초기화. IBS_InitSheet(ibsheetinfo.js에서 제공) 함수를 이용했을 때는 내부에서 이 세 함수를 한 번에 호출합니다.IBSheet8은 위 두개 과정이 합쳐진 형태로 단일 함수내에서 객체에 대한 생성 및 초기화가 이루어지게 됩니다.
생성 시점 주의 (동기/비동기): IBSheet7은 시트 생성이 무조건 동기 방식이라 생성 함수 호출 직후 곧바로 시트 객체를 사용할 수 있었습니다.
IBSheet8의 create (static)는 기본이 비동기 방식이므로, 함수가 반환한 직후에는 시트가 아직 완성되지 않았을 수 있습니다.
생성 완료 후 데이터 로드나 시트 조작은 onRenderFirstFinish (event)에서 처리하는 것을 권장합니다.
반드시 동기로 생성해야 한다면create의sync인자를1로 지정합니다.
//AS-IS
// 1. 시트 객체를 #sheetDIV 객체에 지정한 크기로 생성(생성객체,id,너비,높이)
createIBSheet2( document.getElementById("sheetDIV"),"mySheet","100%","250px");
// 2. 시트 초기화
var initSheet = {
Cfg:{SearchMode:2},
Cols:[
{Header:"No",Type:"Seq",SaveName:"SEQ",Width:60},
{Header:"이름",Type:"Text",SaveName:"sName",Width:100,Align:"Center"},
{Header:"부서",Type:"Combo",SaveName:"sDept",Width:80,ComboText:"인사|총무|개발|설계",ComboCode:"A01|A04|B01|B02"},
...
]
}
//초기화 함수 호출(시트객체,초기화 설정 구문)
IBS_InitSheet(mySheet,initSheet);
//TO-BE
var initSheet = {
Cfg:{SearchMode:2},
Cols:[
{Header:"No",Type:"Int",Name:"SEQ",Width:60},
{Header:"이름",Type:"Text",Name:"sName",Width:100,Align:"Center"},
{Header:"부서",Type:"Enum",Name:"sDept",Width:80,Enum:"|인사|총무|개발|설계",EnumKeys:"|A01|A04|B01|B02"},
...
]
}
//시트 객체 생성 및 초기화(높이,너비는 sheetDIV객체의 크기를 따른다)
IBSheet.create({
el:"sheetDIV" //생성객체
id:"mySheet" //id
options:initSheet //초기화 설정 구문
});