특정 값에 따라 셀(Cell)의 배경색(Color), 편집여부(CanEdit) 등을 동적으로 변경하는 기능을 제공합니다.
ex) 스크린 수가 1,000 이상인 경우 "영화명" 셀(Cell)에 배경 색을 변경하는attribute Formula 예제
attribute Formula 설정
1. 컬럼 생성시 attribute+Formula 정의하기
attribute Formula는 "속성명 + Formula" 형식으로 컬럼 생성 시 정의 됩니다.
ex) CanEditFormula , ColorFormula, ClassFormula, TextStyleFormula등
options.Cols = [ { Type:"Bool", Name:"CHK" }, //CHK열 값이 true인 경우 배경을 붉은색으로 표시 { Type:"Text", Name:"A", ColorFormula:"CHK ? '#FF0000' : ''" }, //CHK 열 값이 true인 경우 편집 가능 { Type:"Text", Name:"B", CanEditFormula:"CHK?1:0" }, // A열의 배경색이 붉은색인 경우, 해당 셀에 특정 class(style) 적용 { Type:"Text", Name:"C", ClassFormula: function(fr){ if(fr.Sheet.getAttribute( fr.Row, "A", "Color") === "#FF0000") { return "SPCell"; //td 테그에 SPCell 클래스가 적용됨. } return ""; } } ]
2. 계산 순서 설정하기
attribute Formula 기능 사용 시에는 (Row)CanFormula와 (Row)CalcOrder가 반드시 설정되어야 합니다. (매우 중요!!!)
options.Def.Row = {CanFormula: 1, CalcOrder: "AColor"};
여러 개의 Formula를 사용하는 경우, (Row)CalcOrder에 열이름 + 속성명 형식으로 계산 순서를 정의해야 합니다.
options.Def.Row = { CanFormula: 1, // Formula나 AttributeFormula를 사용하려면 무조건 정의 되어야 함 // C컬럼의 Formula 계산 후, // A컬럼 ColorFormula , B컬럼 CanEditFormula가 계산됨. (계산 순서 주의) CalcOrder: "C,AColor,BCanEdit" };
CalcOrder 설정시 콤마(,) 구분자 앞뒤로 공백이 들어가면 안됩니다.
기타 참고 내용
가 ) Formula 내용은 문자열이나 함수로 정의 할 수 있습니다.
options.Cols = [ // formula 내용을 문자열로 정의 {Type: "Text", Name: "A", ColorFormula: "C < 100 ? '#FF0000' : '#FFFFFF' "}, // formula 내용을 함수로 정의 {Type: "Int", Name: "B", ColorFormula: function(fr) { //함수로 정의시 반드시 설정할 값을 리턴 해 줘야 함. return fr.Row.A > 100 ? '#FF0000' : '#FFFFAA'; } }, ... ]
나 ) 한번 정의된 Formula는 조회나 값 수정 시 자동으로 계산되어 반영됩니다. (수정불가)
다) 일반 Formula와 attribute Formula를 같이 사용하는 경우에는 일반 Formula가 정의된 열 이름도
(Row)CalcOrder 속성에 추가되어야 합니다.
ex) 일반 Fomrula와 attribute Formula를 같이 사용하는 예제
라) Formula는 열(Column) 뿐 아니라 행(Row)이나 셀(Cell)에도 설정이 가능합니다. (메뉴얼 참고)