Type : Enum 열(Column)은 클릭 시 리스트가 펼쳐지며 설정한 내용이 보이게 됩니다.



이 리스트 안에 아이템을 여러 개 열(Column)형태로 표현하거나, 이미지를 표시하는 등 다양한 기능을 구현 할 수 있습니다.



1. 리스트의 내용을 Enum과 다르게 표현하기

EditEnum 속성을 통해 선택된 값과 리스트의 값을 다르게 표현 할 수 있습니다.

Enum, EditEnum 속성 설정 시 리스트 값에 \t를 추가하여 다 단 형태를 구현할 수 있습니다.

// IBSheet8 생성 부
Cols:[
{"Header": "현재작업상태","Type": "Enum","Name": "PRate",
"EnumKeys": "|01|02|03", // 디비 저장 값
"Enum": "|대기|진행중|완료", // 셀(Cell)에 표시되는 값
"EnumEdit": "|대기\tDelay\t01|진행중\tProcess\t02|완료\tComplete\t03" // 리스트에 표시되는 값
},
...
]


2. attribute+Formula 를 통한 리스트 내용 동적 변경

{
"Def": {
"Row": {
"CanFormula": true,
"CalcOrder": "sPosEnum,sPosEnumKeys"
},
"Cols":[
....

{"Header": "직급","Type": "Enum","Name": "sPos","Width": "95","Align":
"Center","ColorFormula": changeColorFormula,"CanEdit": 1,"RawSort": 1,
"Enum": "|대표이사|이사|상무|소장|차장|부장|과장|대리|사원",
"EnumKeys": "|01A|02A|03A|04A|04B|05B|06B|07B|08B|09B",
"EnumFormula": enumFormula,"EnumKeysFormula": enumKeysFormula},

....
]
}

function enumFormula(f) {
return f.Row['Chk'] ? '|대표이사|이사|상무|소장' : '|차장|부장|과장|대리|사원';
}

function enumKeysFormula(f) {
return f.Row['Chk'] ? '|01A|02A|03A|04A' : '|04B|05B|06B|07B|08B|09B';
}

[채크박스 체크시]


[체크박스 언체크시]


예제보기)

https://jsfiddle.net/83fzck0v/


3. Type:"Enum"인  열(Column)에 Menu 기능 사용하기

1) 일부 아이템 선택 불가

{

"Cols": [
{
Header: "Type Enum",
Type: "Enum",
Name: "sEnum",
Enum: "|안산1|안산2|화성1|화성2|화성3|일산1|일산2",
EnumKeys: "|A0|B0|C0|D0|E0|F0|G0",
EnumMenu : {
Items: [
{ Text: "안산1", Value: "A0", Disabled: 1 },
{ Text: "안산2", Value: "B0" },
{ Text: "화성1", Value: "C0" },
{ Text: "화성2", Value: "D0" },
{ Text: "화성3", Value: "E0", Disabled: 1 },
{ Text: "일산1", Value: "F0" },
{ Text: "일산2", Value: "G0" },
]
},
Width: 200,
}
]
}


예제보기)

https://jsfiddle.net/kdwzexp0/


2) EnumMenu를 이용한 버튼 추가

var menuInit = {
Color: "#DDFFDD",
MenuMaxHeight: 50, //드랍리스트의 높이를 줄임
Enum: "|안산1|안산2|화성1|화성2|화성3|일산1|일산2",
EnumKeys: "|01|02|03|04|05|06|07",
EnumMenu : {
Items: [
{Text: "공사현장 리스트",Caption: 1},
{Text: "[안산1] 경기도 안산시 단원구 광덕3로 201",Value: "안산1"},
{Text: "[안산2] 경기도 안산시 단원구 신길동 1509",Value: "안산2"},
{Text: "[화성1] 경기도 화성시 반송동", Value: "화성1"},
{Text: "[화성2] 경기도 화성시 동탄대로22길 30", Value: "화성2"},
{Text: "[화성3] 경기도 화성시 산척동 283", Value: "화성3"},
{Text: "[일산1] 경기도 고양시 일산동구 정발산로82번길 10", Value: "일산1"},
{Text: "[일산2] 경기도 고양시 일산동구 장항동 1761", Value: "일산2"},
],
"Buttons":["item 추가"],
OnButton:function(selectitem){
if(selectitem == "item 추가"){
alert("아이템 추가 버튼을 클릭하셨습니다.")
}
}
}
}

options.Cols = "Cols": [
...
{"Header": "콤보(Enum)","Type": "Enum","Name": "ComboData",Extend:menuInit},
...
]


예제보기)

https://jsfiddle.net/6t9q21gk/