[{"id":"ff9bd47a-cd46-472d-af43-366f35920ef1","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"f674ca00-4cf2-4f53-9a08-4aa596ff5f02","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5f9ed446-5e43-4e35-b070-bbedb3095625","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"c8f61bda-f911-4c26-aa5c-cf046d91d345","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"ffcf2b4f-0e46-41d0-b0b7-0cc510a2a482","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"4200be12-4188-42f3-9cf4-5fcaebbc57f7","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7bc4edb3-af3c-4fe3-8820-973c7b43d825","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"af815243-c00f-4782-b362-bb52a9129e99","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"bd8aaf4e-1ba8-4025-8ba9-d57cfbefbc58","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"874f311d-9a12-4e41-9c01-e7aaa99ab496","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5811b0f0-9142-4dec-87d5-11fbd1e001ec","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"cef428a7-3494-4942-81f6-6712e4b9d1e7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"3be03770-5428-4ad4-8ebc-09708a22e209","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"563145bf-65b2-4718-851d-594d1b9cf1f6","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"b273295a-e4a0-45ad-be8a-5c3a2322d22c","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"76f8df3f-5d71-4244-8fa6-6be30e10170f","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7990d3f5-9c4c-4c37-9a96-7e7b1cf0e531","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"a5d052e6-ac14-4b26-b51d-2042af4bd88c","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"4a6e9860-0849-40aa-8cdb-c16c5fb52ef4","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"b02661dd-4bf2-4e6a-94c0-c85827e19c52","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"06c9877a-acd0-49b6-8a35-52d10c942e21","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"b9cc95e6-4c7e-4ae6-9168-6270c8b9df48","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"81742c3e-102a-44f5-8e12-83cdddf79651","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"f6568a5c-eb38-4edb-af3a-8af10e64b122","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"f30f3e16-1db8-48eb-b7a8-de189c306e42","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"c38d9bd1-ec29-4861-bea2-e9939a1d40b8","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"c7f7e6eb-630d-4851-ab1a-eeafb6882ff9","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e82078d4-d506-4d51-83ea-129c35f610c2","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"2cf396a7-8e6d-4ece-867e-2a346c855b76","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7fdf2b77-d2f1-440f-8bde-79873ae161be","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"4bfbb7a7-db6a-4e62-9bb9-043090f29e06","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"4acb1bbe-766a-4271-a1e7-156999bf6da7","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e2476b8f-2102-441c-9f8c-bbd9ca5f94c8","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"eeba73bc-77fb-4e4c-addd-f365b53e009b","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"604aae49-9273-455c-813b-c2c97aa713c7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"fd995bda-fac2-4ef5-ab75-d8f6840b937a","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"24dbdbdf-1539-4e43-8f9f-036adaf28f36","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"6896e627-8625-484c-9487-48803c13019b","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"035cce7b-7cfc-405b-b003-419583668944","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"139bcd73-12b9-4e78-843c-dd63933e35b8","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"f38fe005-cfd6-4f25-9c83-f5a545aaa911","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5fa9f1d8-ed73-4642-82cd-cb4f7a9a145a","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"09b280d0-fc2f-438a-8d57-e87c6ef02d8b","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]}]
        
(Showing Draft Content)

階層データ

SpreadJS は、データソースを階層的に定義するため、データスキーマで階層オプションを提供します。階層オプションは、次のパラメータを提供するGC.Data.IDataSourceOptionインタフェースから継承されます。

  • type: 階層タイプを定義します。次のいずれかの値を設定できます: Parent、ChildrenPath、Level、または Custom。

  • column: 階層データを構築する階層キーを指定します。

  • levelOffset: レベルを増減できるレベルオフセットを示します。通常、階層レベルは 0 から始まります。

  • outlineColumn: GC.Data.IHierarchyOutlineColumnOptionsから継承されます。階層として表示できる列を指定します。

  • summaryFields: GC.Data.IHierarchySummaryFieldCollectionから継承されます。フィールドの数式を定義します。

  • parse: GC.Data.IHierarchyCustomParseOptionsから継承されます。カスタム階層タイプの主キーを親キーに解析します。

  • unparse: GC.Data.IHierarchyCustomUnparseOptionsから継承されます。カスタム階層タイプの主キーを構築します。

階層タイプ

階層には、Parent、ChildrenPath、Level、および Custom の 4つのタイプがあります。テーブルをデータマネジャーに追加するときに、各種階層タイプを構成できます。

親階層

親階層では、階層タイプを「Parent」に設定し、主キーを使用して階層IDを示します。

parent-hierarchy.0a0565

次のサンプルコードは、テーブルシートに親階層を設定する方法を示します。

<script>
        var spread = new GC.Spread.Sheets.Workbook(document.querySelector('#ss'), { sheetCount: 0 });
        initSpread(spread)
        function initSpread(spread) {
            var dataManager = spread.dataManager();

            initHierarchyParentType(spread, dataManager);

        }
        function initHierarchyParentType(spread, dataManager) {
            var table = dataManager.addTable("hierarchyParentTable", {
                data: initHierarchyParentData(),
                schema: {
                    hierarchy: {
                        type: 'Parent', // 親階層を構成します。
                        column: 'parentId', // 階層表示の構築に使用できる列を指定します。                    },
                    columns: {
                        'id': { dataName: 'id', isPrimaryKey: true }, // 主キーが必要です。
                        'parentId': { dataName: 'parentId', dataType: "reorder" },
                    }
                }
            });
            var sheet = spread.addSheetTab(0, "HierarchyParent", GC.Spread.Sheets.SheetType.tableSheet);
            sheet.setDefaultRowHeight(40, GC.Spread.Sheets.SheetArea.colHeader);
            sheet.options.allowAddNew = true;

            table.fetch().then(function () {
                var myView = table.addView("myView", [
                    {
                        value: "parentId", width: 200,
                        outlineColumn: {
                            showImage: true,
                            images: ['httpss://en.onboarding.grapecitydev.com/spreadjs/demos/spread/source/images/task-1.png', 'httpss://en.onboarding.grapecitydev.com/spreadjs/demos/spread/source/images/task-2.png', 'httpss://en.onboarding.grapecitydev.com/spreadjs/demos/spread/source/images/task-3.png'],
                            expandIndicator: 'httpss://en.onboarding.grapecitydev.com/spreadjs/demos/spread/source/images/increaseIndicator.png',
                            collapseIndicator: 'httpss://en.onboarding.grapecitydev.com/spreadjs/demos/spread/source/images/decreaseIndicator.png',
                        },

                    },
                    { value: "id", width: 200 },
                ]);

                sheet.setDataView(myView);
            });
        }
        function initHierarchyParentData() {
            var data = [
                { id: 1, parentId: -1 },
                { id: 2, parentId: -1 },
                { id: 3, parentId: 1 },
                { id: 4, parentId: 1 },
                { id: 5, parentId: 2 },
                { id: 6, parentId: 2 },
                { id: 6, parentId: 2 },
            ];
            return data;
        }
</script>

ChildrenPath階層

ChildrenPath階層では、階層タイプを「ChildrenPath」に設定します。この場合、主キーの設定は必須ではありませんが、設定することを推奨します。

childrenpath

次のサンプルコードは、テーブルシートに ChildrenPath階層を設定する方法を示します。

<script>
    var spread = new GC.Spread.Sheets.Workbook(document.querySelector('#ss'), { sheetCount: 0 });
    initSpread(spread)
    function initSpread(spread) {
        var dataManager = spread.dataManager();
        initHierarchyParentType(spread, dataManager);
    }
    GC.Spread.Common.CultureManager.culture("ja-jp");
    function initHierarchyParentType(spread, dataManager) {
        var taskTable = dataManager.addTable("Tasks", {
            data: initHierarchyChildData(),
            schema: {
                hierarchy: {
                    type: 'ChildrenPath',
                    column: 'TaskChildren',
                },
                columns: {
                    タスク名: { dataName: 'name' },
                    TaskChildren: { dataName: 'children' },
                    // 子の他の列。
                }
            }
        });
        var sheet = spread.addSheetTab(0, "ChildrenPath", GC.Spread.Sheets.SheetType.tableSheet);
        sheet.setDefaultRowHeight(40, GC.Spread.Sheets.SheetArea.colHeader);
        sheet.options.allowAddNew = true;
        taskTable.fetch().then(r => {
            var taskView = taskTable.addView('TaskView', [
                {
                    value: 'タスク名', outlineColumn: true, width: "*" // オプション設定でアウトライン表示用の列を設定します。
                }
            ]);
            sheet.setDataView(taskView);
        })
    }
    function initHierarchyChildData() {
        var data = [
            {
                name: 'アメリカ',
                children: [
                    {
                        name: 'テキサス',
                        children: [
                            {
                                name: 'ヒューストン',
                            },
                            {
                                name: 'ダラス',
                            },
                            {
                                name: 'サンアントニオ',
                            }
                        ]
                    }
                ]
            },
            {
                name: '日本',
                children: [
                    {
                        name: '奈良',
                        children: [
                            { name: '奈良市' },
                            { name: '天理市' },
                            { name: '五條市' },
                        ]
                    }
                ]
            }
        ]
        return data;
    }
</script>

レベル階層

レベル階層では、階層タイプを「Level」に設定します。この場合、主キーの設定は必須ではありませんが、設定することを推奨します。

level

次のサンプルコードは、テーブルシートにレベル階層を設定する方法を示します。

<script>
    var spread = new GC.Spread.Sheets.Workbook(document.querySelector('#ss'), { sheetCount: 0 });
    initSpread(spread)
    function initSpread(spread) {
        var dataManager = spread.dataManager();

        initHierarchyParentType(spread, dataManager);
    }
    function initHierarchyParentType(spread, dataManager) {
        var taskTable = dataManager.addTable("Tasks", {
            data: initHierarchyLevelData(),
            schema: {
                hierarchy: {
                    type: 'Level',
                    column: 'TaskLevel',
                },
                columns: {
                    タスク名: { dataName: 'name' },
                    TaskId: { dataName: 'id', isPrimaryKey: true }, // オプション設定で主キーを階層IDに使用します。
                    TaskLevel: { dataName: 'level' },
                }
            }
        });
        var sheet = spread.addSheetTab(0, "HierarchyParent", GC.Spread.Sheets.SheetType.tableSheet);
        sheet.setDefaultRowHeight(40, GC.Spread.Sheets.SheetArea.colHeader);
        sheet.options.allowAddNew = true;
        taskTable.fetch().then(r => {
            var taskView = taskTable.addView('TaskView', [
                {
                    value: 'タスク名', outlineColumn: true// オプション設定でアウトライン表示用の列を設定します。
                }
            ]);
            sheet.setDataView(taskView);
        })
    }
    function initHierarchyLevelData() {
        var data = [
            { name: 'アメリカ', level: -1, id: 1 },
            { name: 'テキサス', level: 0, id: 2 },
            { name: 'ヒューストン', level: 1, id: 3 },
            { name: 'カリフォルニア', level: 0, id: 4 },
            { name: 'サンフランシスコ', level: 1, id: 5 },
            { name: 'ロサンゼルス', level: 1, id: 6 },
        ];
        return data;
    }
</script>

カスタム階層

カスタム階層では、階層タイプを「Custom」に設定します。主キーの設定はオプションです。

custom-hierarchy.7ef0f0

次のサンプルコードは、テーブルシートにカスタム階層を設定する方法を示します。

<script>
    var spread = new GC.Spread.Sheets.Workbook(document.querySelector('#ss'), { sheetCount: 0 });
    initSpread(spread)
    function initSpread(spread) {
        var dataManager = spread.dataManager();
        initHierarchyParentType(spread, dataManager);

    }
    function initHierarchyParentType(spread, dataManager) {
        var taskTable = dataManager.addTable("Tasks", {
            data: initHierarchyChildData(),
            schema: {
                hierarchy: {
                    type: 'Custom',
                    column: 'id',
                    parse: function (options) {
                        // 主キー "1.1.1" を "1.1" に解析します。
                        // 戻り値はparentIdとして扱われます。
                        let seg = options.data.TaskId.split('.');
                        return seg.slice(0, seg.length - 1).join('.')
                    },
                    unparse: function (options) {
                        let parentIds, currentIndex = options.index, parentData = options.parentData, parentKey = parentData && parentData.TaskId;
                        if (parentKey) {
                            let sp = parentKey.split('.');
                            parentIds = sp;
                        } else {
                            parentIds = [];
                        }
                        parentIds.push(currentIndex + 1);
                        return parentIds.join('.');
                    }
                },
                columns: {
                    TaskName: { dataName: 'name' },
                    TaskId: { dataName: 'id', isPrimaryKey: true }, // オプション設定で主キーを階層IDに使用します。
                }
            }
        });
        var sheet = spread.addSheetTab(0, "HierarchyParent", GC.Spread.Sheets.SheetType.tableSheet);
        sheet.setDefaultRowHeight(40, GC.Spread.Sheets.SheetArea.colHeader);
        sheet.options.allowAddNew = true;

        taskTable.fetch().then(r => {
            var taskView = taskTable.addView('TaskView', [
                {
                    value: 'TaskName', outlineColumn: true, width: "*" // オプション設定でアウトライン表示用の列を設定します。
                }
            ]);
            sheet.setDataView(taskView);
        })
    }
    function initHierarchyChildData() {
        var data = [
            {
                id: '1', name: "1"
            },
            { id: '2', name: '2' },
            { id: '1.1', name: "1.1" },
            { id: '1.1.1', name: '1.1.1' },
            { id: '2.1', name: '2.1' }
        ]
        return data;
    }
</script>

階層の操作

テーブルシートは、次の階層の操作をサポートしています。

  • 指定した行の階層データレベルを上げる

    promoteHierarchyLevel(row: number)メソッドを使用して、指定したインデックスの階層データレベルを上げることができます。

    tableSheet.promoteHierarchyLevel(8);
  • 指定した行の階層データレベルを下げる

    demoteHierarchyLevel(row: number, withChildren?: boolean)メソッドを使用して、指定したインデックスの階層データレベルを下げることができます。

    tableSheet.demoteHierarchyLevel(8);
  • 階層データを上に移動する

    moveUp(row: number)メソッドを使用して、指定したインデックスの階層データを上に移動することができます。

    tableSheet.moveUp(8);
  • 階層データを下に移動する

    moveDown(row: number)メソッドを使用して、指定したインデックスの階層データを下に移動することができます。

    tableSheet.moveDown(8);
  • 選択した行の後ろにレコードを追加する

    addHierarchyItemAfter(row: number, rowData: any)メソッドを使用して、選択した行の後ろに新しい行を追加することができます。

    tableSheet.addHierarchyItemAfter(8, {id: 8, name: "grapecity"});
  • 選択した行の上にレコードを追加する

    addHierarchyItemAbove(row: number, rowData: any)メソッドを使用して、選択した行の上にレコードを追加することができます。追加されたレコードは選択したレコードの位置を置き換え、選択したレコードは追加されたレコードの子になります。

    tableSheet.addHierarchyItemAbove(8, {id: 8, name: "grapecity"});
  • 選択した行の下にレコードを追加する

    addHierarchyItemBelow(row: number, rowData: any)メソッドを使用して、指定した行の下に新しいデータ行を子として追加することができます。追加されたレコードは選択した行の最後の子になります。

    tableSheet.addHierarchyItemBelow(8, {id: 8, name: "grapecity"});
  • レコードを削除する

    レコードとその子ノードを削除することができます。


  • レコードを展開する

    expandAllHierarchyLevels()メソッドを使用して、すべての階層レベルを展開することができます。列ヘッダをクリックすると、このメニュー項目が表示されます。

    tableSheet.expandAllHierarchyLevels();
  • レコードを折りたたむ

    collapseAllHierarchyLevels()メソッドを使用して、すべての階層レベルを折りたたむことができます。列ヘッダをクリックすると、このメニュー項目が表示されます。

    tableSheet.collapseAllHierarchyLevels();

メニュー項目の表示を切り替える

階層レベルを上げる・下げる、レコードを上・下に移動、レコードを前・後ろ・上・下に追加、階層レベルを展開・折りたたみなどのメニュー項目は、実行時に表示/非表示に設定することができます。

次の図は、行ヘッダをクリックすると、以下のメニュー項目が表示されることを示しています。

header-menu

次の図は、列ヘッダをクリックすると、以下のメニュー項目が表示されることを示しています。

column-header

次のサンプルコードは、メニュー項目の表示/非表示を切り替える方法を示します。

// 階層レコードのメニュー項目を表示します。
sheet.options.menuItemVisibility = {
// 以下のオプションは行ヘッダのコンテキストメニューに表示されます。
promoteMenuItemVisible: true,
demoteMenuItemVisible: true,
// 以下のオプションは列ヘッダのコンテキストメニューに表示されます。
expandAllLevelMenuItemVisible: true,
collapseAllLevelMenuItemVisible: true,
expandToLevelMenuItemVisible: true,
// 以下のオプションは行ヘッダーのコンテキストメニューに表示されます。
// こちらのメニュー項目は列のdataTypeがrowOrderに設定される場合に有効になります。
moveUpMenuItemVisible: true,
moveDownMenuItemVisible: true,
addBeforeMenuItemVisible: true,
addAfterMenuItemVisible: true,
addAboveMenuItemVisible: true,
addBelowMenuItemVisible: true,

type=warning

メモ:groupBy、固定行、resetRow などの機能は、階層データでは正しく動作しないことがあります。

デザイナの使用

データソースタブとテーブルシートリボンを使用することで、SpreadJSデザイナで階層データを設定することもできます。階層タイプ、集計式、アウトラインなどを設定することができます。

column-tab-hierarchy

階層セクションには、次のオプションがあります。

  • タイプ: Parent、ChildrenPath、または Level のいずれかの階層タイプを設定することができます。

    hierarchy-type

  • 集計式: テーブルの指定した列の階層の集計式を入力することができます。集計式の詳細については、「数式」トピックを参照してください。

  • アウトライン列: アウトライン列を使用して、アウトライン列の表示をカスタマイズすることができます。

リボンコンテナのテーブルシートデザインタブの[メニュー項目の表示] ボタンを使用して、階層の操作メニュー項目の表示/非表示を設定することもできます。

menu-item

[メニュー項目の表示] ボタンをクリックして、[メニュー項目の表示] ダイアログを開きます。

menu-item-dialog