초기화 구문 변경(객체 생성 및 초기화)

2. 객체 생성 및 초기화

초기화 구문 변경 부분

기존 IBSheet7의 각 열 별 타입, 포맷, 기능에 대해서 IBSheet8에서 변경된 내용을 아래에서 확인해 보세요.

주요 초기화 기능 변경

Cfg(SetConfig)

ibsheet7 속성명 기능설명 변경 내용
AutoFitColWidth 지정한 시점마다 각 열의 너비를 가로 스크롤바가 생기지 않는 범위 내로 조정해 주는 기능 열 생성시 RelWidth (col) 속성을 통해 각 열의 너비를 비율로 조정하는 형태로 변경
CountFormat,CountPosition,PagingPosition 조회된 데이터 건수 표시 기능 InfoRowConfig (cfg) 속성을 통해 설정
DragMode 드래그 방식,가능 여부 설정 CanDrag (cfg) 속성을 통해 설정 가능
HeaderRowHeight,DataRowHeight 헤더,데이터 행의 높이를 설정 css 를 통해 설정하는 형태로 변경
Size (cfg)를 통해 시트의 행 높이, 아이콘 크기, 버튼 크기 등 전체적인 크기 조절이 가능
FrozenCol,FrozenColRight 좌우측 열고정 기능 LeftCols, RightCols 속성을 통해 시트 생성시 설정. 이후로는 setFixedCols (method) 함수로 변경가능
MergeSheet 헤더, 데이터행의 머지종류 설정 HeaderMerge (cfg),DataMerge (cfg), PrevColumnMerge (cfg) 속성으로 변경
Page 한번에 렌더링할 행의 개수 PageLength (cfg)로 명칭 변경
SearchMode 조회 렌더링 방식 설정 SearchMode (cfg)동일 하지만 Mode는 조금씩 다르며 일부 모드는 추가됨
SumPosition 합계 행에 대한 위치 setFormulaRowPosition (method) 함수를 통해 설정
ToolTip 풍선도움말 사용여부 row,col 속성 설정에서 Tip (row) (col) (cell)으로 변경
UseHeaderActionMenu 헤더행 컨텍스트 메뉴 기능 Def/Header에서 Menu 속성으로 설정




Cols(InitColumns)

Type 속성

Type명 변경내용
Text 일반 문자형 타입으로 동일. 단 MultiLineText(여러개행)속성 사용시에는 Lines타입이 별도 제공됩니다.
Status 지원안함
Status타입 열의 유무와 상관없이 시트 내에 변경사항에 대한 관리가 자동으로 이루집니다.
일반적으로 수정된 행은 노란색(.IBColorChanged),입력은 파란색(.IBColorAdded),삭제는 붉은색(.IBColorDeleted) 배경색으로 변경되어 표시 됩니다.
서버로 전송되는 행 상태에 대한 값은 기본적으로 'STATUS' 로 전송되며 이름을 변경하고 싶은 경우에는 Cfg에서 ReqStatusName 속성으로 변경할수 있습니다.
기존에 I, U, D로 서버로 전송되던 값은 Added, Changed, Deleted 로 전송됩니다.
이를 기존과 동일한 I, U, D로 변경하시려면 ko.js(메세지파일)에서 ReqStatusAdded, ReqStatusChanged, ReqStatusDeletedI, U, D로 수정해 주세요.
기존 IBSheet7과 마찬가지로 사용자에게 행의 입력/수정/삭제 여부를 별도 열을 통해 표시하고자 하는 경우에는 아래 Status 타입 마이그레이션 부분을 참고해 주세요.
DelCheck 지원안함
deleteRow()함수를 통해서 행의 상태를 삭제로 변경할 수 있습니다.
IBSheet7처럼 체크박스를 두고 상태를 삭제로 변경하고자 하신다면 열의 Type을 Bool로 설정하시고 OnChange (json event)를 통해 행의 상태를 바꾸게끔 설정하시면 됩니다.
자세한 코드는 아래 DelCheck 타입 마이그레이션 부분 참고해주세요.
CheckBox Bool타입으로 변경되었습니다.
DummyCheck 지원안함
Bool 타입으로 설정하고 NoChanged (col) 속성을 1로 설정하시면 됩니다.
Radio Radio로 동일합니다.
Combo Enum 타입으로 변경되었습니다.
콤보의 item을 설정하던 ComboText, ComboCode는 각각 Enum (col), EnumKeys (col)로 변경되었습니다.
특히 Enum, EnumKeys의 첫번째 글자를 구분자로 사용하는 것을 주의해 주세요.
보다 자세한 내용은 아래 Combo,ComboEdit 타입 마이그레이션을 참고해 주세요.
ComboEdit 지원안함.
Combo,ComboEdit 타입 마이그레이션을 참고해 주세요.
AutoSum 타입은 Int나 Float으로 설정하시고, FormulaRow (col) 속성을 사용하시면 합계나 평균을 표시할 수 있습니다.
Image Img타입으로 변경되었습니다.
특히 데이터 구조가 크게 변경되었으므로 Type부분의 내용을 참고해 주세요.
Int Int로 동일합니다.
Float Float로 동일합니다.
Date Date로 동일합니다.
Popup 지원안함.
열 우측에 버튼을 두고자 하시는 경우에는 Button속성을 통해 설정하실 수 있습니다.
ex) {Type:"Text",Name:"DEPTPOP",Button:"../assets/imgs/popup.png"}
버튼 클릭시 발생하는 이벤트는 onButtonClick (event)을 참고하세요.
Pass Pass로 동일합니다.
Seq 지원안함
열의 타입을 Int로 설정하시고, Name"SEQ"로 지정하시면 자동 순번열 형태로 동작합니다.
Html Html로 동일합니다.
Button Button으로 동일합니다.
onButtonClick (event)이벤트 대신 onClick (event)이벤트를 통해 클릭에 대한 로직을 구성하셔야 합니다.
Result 지원안함
Sparkline D3 라이브러리를 이용하여 구현 가능 (스파크차트 예제 참고)

Format 속성

IBSheet8에서는 타입별로 설정할 수 있는 포맷이 다양하고 기본적인 Format (col) 외에도 DataFormat (col), EditFormat (col), CustomFormat (col)를 통해 서버와 주고받을 데이터 유형이나 사용자 편집시 보여질 데이터 유형 등을 설정할 수 있습니다.
이로 인해 굉장히 유연하고 다양한 형태의 포맷을 지원할 수 있습니다.
또한 자주 사용되는 설정들을(Format,DataFormat,EditFormat…) IB_Preset 혹은 다른 변수에 담아두고, 해당 포맷이 필요한 경우 Extend (col) 속성을 통해 쉽게 사용하실 수 있습니다.

//AS-IS
var Cols = [
    {Type:"Date",SaveName:"eDate",Width:100,Format:"Ymd"},
];
//TO-BE
opt.Cols = [
    //YMD 안에 Type,Width,Format 등이 모두 설정되어 있음.
    {Name:"eDate",Extend:IB_Preset.YMD},
];

IB_Preset 변수는 ibsheet-common.js 파일 내에 있습니다.

그외에 속성

속성명 IBSheet8 지원 방법
AcceptKeys,ExceptKeys 지원안함
ResultMask (col) 속성을 통해 정규식으로 로직을 구성하셔야 합니다.
기존 코드에 대해 IBSheet8에서 EditMask (col) 변환하는 코드는 아래 AcceptKeys,ExceptKeys 마이그레이션을 참고해 주세요.
Align 이전과 동일 (center,left,right)
ApproximateType 컬럼별 설정 불가.
(locale파일(ko.js)에서 Format.DecimalAdjust 값에 따라 결정(ceil,round,floor)
AutoSum FormulaRow (col) 속성으로 변경. 사용법은 유사하나 함수 연결도 가능해졌습니다.
BackColor Color (col)로 속성명 변경. 사용법은 동일합니다.
CalcLogic Formula (col)속성으로 변경되고 기능이 확장되었습니다. 자세한 내용은 Formula (appendix)를 참고해 주세요.
ColMerge ColMerge (col)속성으로 동일합니다.
ComboCode,ComboText 위에 Combo, ComboEdit 타입에 대한 마이그레이션에서 언급한 것과 같이 Enum (col), EnumKeys (col)로 변경되었습니다.
마이그레이션시 IBSheet8에서는 첫번째 글자를 구분자로 사용하는 것을 주의해 주세요.
Edit,EditLen EditCanEdit (col)EditLenSize (col)로 변경되었습니다.
EmptyToReplaceChar EmptyValue (col)로 변경되었습니다.
FontBold,FontUnderline TextStyle (col)로 속성명 변경. bold외 밑줄,스트라이크,기울임등을 설정할 수 있습니다.
FontColor TextColor (col)로 속성명 변경. 사용법은 동일합니다.
Hidden Visible (col)로 변경되었습니다. 따라서 값도 기존과 반대로 입력되어야 합니다.(Hidden (col)속성은 실제 행의 높이 혹은 열의 너비만 줄여서 표시합니다.)
KeyField Required (col)로 속성명 변경. 사용법은 동일합니다.
MaximumValue,MinimumValue onEndEdit 이벤트를 override 하여 구현하여야 합니다. (예제참고)
SaveName Name (col)으로 속성명 변경.
특히 Name은 필수요소로 모든 열에는 반드시 Name속성이 있어야 합니다. 또한 한 시트 내에 동일한 Name을 갖는 열이 2개 이상 있어도 안됩니다.
Sort CanSort (col)로 속성명 변경. 사용법은 동일합니다.
ToolTip Tip (col)으로 속성명 변경. 사용법은 동일합니다.
TreeCol 지원안함
트리기능 사용시 MainCol cfg속성을 통해 트리가 될 열을 지정하셔야 합니다.
InsertEdit AddEdit(col)으로 속성명 변경
UpdateEdit ChangeEdit(col)으로 속성명 변경
Width 기존과 동일합니다.
그리고 MinWidth (col), MaxWidth (col), RelWidth (col)를 통해 열 너비의 최소,최대 크기나 상대적 크기를 설정하실 수 있습니다.