showFixedRows (method)

Head 행, Foot 행을 생성합니다.

인자로 전달하는 Head,Foot object 객체의 구조는 시트 객체구조 를 참고해주세요.

object 의 인자 중 Kind 를 통해 Head 혹은 Foot 을 생성할 수 있습니다.

Syntax

boolean showFixedRows( fixedobject );

Parameters

Name Type Required Description
fixedobject array[object] 필수 객체를 배열로 감싸서 전달. 각 객체에 Kind 필수 (Foot or Head)

Return Value

boolean : HeadFoot 행 생성 여부 (잘못된 인자 값에 의해 수행되지 못하는 경우 0(false) 리턴)

Example

// 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;
};

Read More

Since

product version desc
core 8.2.0.4 기능 추가