IBSheet8 객체 생성 시 Cols 속성에 FormulaRow을 통해 데이터 하단(혹은 상단)에 합계 행을 생성할 수 있습니다.
options.Cols = [ // ... { Type: "Int", Name: "qt", FormulaRow: "Sum", Width: 120 }, { Type: "Int", Name: "rate", FormulaRow: "Avg", Width: 120 }, ];
합계행(FormulaRow)에는 합계 외에 다음과 같은 기본 계산이 허용됩니다.
value | description |
---|---|
FormulaRow:"Sum" | 열 전체 합계 값 |
FormulaRow:"Avg" | 열 전체 평균 값 |
FormualRow:"Max" | 열 전체 최대 값 |
FormualRow:"Min" | 열 전체 최소 값 |
FormulaRow:"Count" | 전체 행의 개수 |
FormulaRow: function(){ } | 사용자 정의 함수 |
합계행(FormulaRow)을 상단에 표시하고자 하는 경우에는 setFormulaRowPosition() 함수를 사용합니다.
필터링 기능 사용시, 필터링된 데이타에만 합계행(FormulaRow) 이 계산되어야 할때 FormulaRowNoFiltered 옵션을 사용하여 처리할 수 있습니다.
합계행(FormulaRow)에 합계나 평균이 아닌 특정 조건에 대한 계산 값을 표시하고자 할 때는 사용자 정의 함수를 사용할 수 있습니다.
//사용자 정의 함수 var myFunc = function(fr){ var col = fr.Col; var rows = fr.Sheet.getDataRows(); var sum = 0; for(var i=0;i<rows.length;i++){ //CODE 컬럼의 값이 "Z" 인 행만 더한다. if( rows[i]["CODE"] == "Z" ) { sum += rows[i][col]; } } return sum; //반드시 return이 있어야 함 } options.Cols = [ // ... { Type: "Int", Name: "qt", FormulaRow: myFunc, Width: 120 }, ];
다음 예제를 참고해 주세요.