Head행,Foot행을 생성합니다.인자로 전달하는
Head,Footobject 객체의 구조는 시트 객체구조 를 참고해주세요.
object의 인자 중Kind를 통해Head혹은Foot을 생성할 수 있습니다.
boolean showFixedRows( fixedobject );
| Name | Type | Required | Description |
|---|---|---|---|
| fixedobject | array[object] |
필수 | 객체를 배열로 감싸서 전달. 각 객체에 Kind 필수 (Foot or Head) |
boolean : Head 행 Foot 행 생성 여부 (잘못된 인자 값에 의해 수행되지 못하는 경우 0(false) 리턴)
// 1. Head 행 1개, Foot 행 1개 생성
var obj1 = [{Kind : 'Head', ... },{Kind : 'Foot', ... }];
sheet.showFixedRows(obj1);
// 2. Cols 속성을 상속받지 않는 Foot 행 생성
// Foot 행은 Cols의 Type, Format 등의 속성을 상속받아 원치 않는 내용이 표시될 수 있습니다.
// 각 컬럼의 속성을 직접 지정하여 이를 방지할 수 있습니다.
// onRenderFirstFinish 이벤트에서 Foot 행을 생성하고, onSearchFinish에서 값을 세팅합니다.
// 2-1. 컬럼별로 직접 지정하는 방식
var OPTS = {
Cols: [
{ Header: "상품명", Name: "prodName", Type: "Text", Width: 150 },
{ Header: "수량", Name: "qty", Type: "Int", Width: 80 },
{ Header: "납품일", Name: "delivDate", Type: "Date", Format: "yyyy-MM-dd", Width: 100 }
],
Events: {
onRenderFirstFinish: function(evtParam) {
evtParam.sheet.showFixedRows([{
Kind: "Foot",
id: "myFootRow",
prodName: { Type: "Text", Value: "합계", CanEdit: 0 },
qty: { Type: "Int", Format: "#,###", Value: 0, CanEdit: 0, EmptyValue: "" },
delivDate: { Type: "Text", Value: "", CanEdit: 0, EmptyValue: "" }
}]);
},
onSearchFinish: function(evtParam) {
// serverTotal: 서버에서 조회한 전체 합계값
evtParam.sheet.setValue(evtParam.sheet.getRowById("myFootRow"), "qty", serverTotal);
}
}
};
// 2-2. 컬럼이 많은 경우 Cols를 순회하여 자동 생성
var OPTS = {
Events: {
onRenderFirstFinish: function(evtParam) {
var footRow = { Kind: "Foot", id: "myFootRow" };
var allCols = (options.LeftCols || []).concat(options.Cols || []).concat(options.RightCols || []);
allCols.forEach(function(col) {
var type = (col.Type === "Int" || col.Type === "Float") ? col.Type : "Text";
footRow[col.Name] = { Type: type, Value: "", CanEdit: 0, EmptyValue: "" };
});
evtParam.sheet.showFixedRows([footRow]);
},
onSearchFinish: function(evtParam) {
// serverTotal: 서버에서 조회한 전체 합계값
evtParam.sheet.setValue(evtParam.sheet.getRowById("myFootRow"), "qty", serverTotal);
}
}
};
// 3. onBeforeCreate에서 공통으로 Foot 행 추가
// 모든 시트에 공통으로 Foot 행을 추가하려면 onBeforeCreate에서 처리합니다.
// ibsheet-common.js에 추가하면 모든 페이지에서 적용됩니다.
IBSheet.onBeforeCreate = function(obj) {
var options = obj.options;
var mode = options.Cfg && options.Cfg.SearchMode;
// 서버 페이징(3,4,5)인 경우 공통 Foot 행 생성
if (mode >= 3 && mode <= 5) {
// 기존 화면에 설정된 이벤트를 담아둠
var origRender = options.Events && options.Events.onRenderFirstFinish;
options.Events = options.Events || {};
// 공통 이벤트를 먼저 실행하고, 이후 화면단의 이벤트를 실행
options.Events.onRenderFirstFinish = function(evtParam) {
var footRow = { Kind: "Foot", id: "myFootRow" };
var allCols = (options.LeftCols || []).concat(options.Cols || []).concat(options.RightCols || []);
allCols.forEach(function(col) {
var type = (col.Type === "Int" || col.Type === "Float") ? col.Type : "Text";
footRow[col.Name] = { Type: type, Value: "", CanEdit: 0, EmptyValue: "" };
});
evtParam.sheet.showFixedRows([footRow]);
if (origRender) origRender(evtParam);
};
}
return obj;
};
| product | version | desc |
|---|---|---|
| core | 8.2.0.4 | 기능 추가 |