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 },
];
다음 예제를 참고해 주세요.