[{"id":"7720ca38-fc98-4fd8-a3a5-3c0e730c3c72","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"247ded67-b050-4436-be40-fe7b0eeabef7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"9a8c377f-1f1e-476e-b487-c2339da9bed3","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5e8e6db2-89b9-4184-bbdc-301ee676869e","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e04b598e-b0d8-4054-bdac-5143d90b3d51","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"edb028d0-a8cc-42b2-acda-42a5515729f0","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"2adde444-20a6-43d7-8896-2b445877327a","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"6ab8ced2-6c7a-41b6-b861-ba066bd40f40","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"0c34aedd-80a3-470b-a0f6-c327a4346be7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"717a5892-fa23-499b-a61d-cff228943aaf","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"bd9be971-69fc-4793-ad6d-234be7a93048","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"a1e8d38f-43d8-4b3e-b747-3fbf7656fcd9","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"d6995fdf-76ee-421f-9e7a-3fb324d14bbb","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"64fa3155-4543-4acd-83b7-f9860fd46673","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"698413bd-0b16-4287-baec-644d98a411d1","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7e4393a0-21ef-438b-981b-325b64db5baa","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]}]
        
(Showing Draft Content)

ルックアップ列

ルックアップ列は、テーブルシートでデータソーススキーマに「lookup」として定義し、コンボボックス型セルまたは複数列のドロップダウンリストとして表示できる列です。ルックアップ列を使用すると、テーブルシートビューに対して効率的な方法で、固定のルックアップ列または関連行のセットから列の値を選択できます。ルックアップ列の概念は、TableSheet のクロス列によって導入されました。

TableSheet では、次のように、データスキーマに列を「lookup」として定義することができます。

配列として定義する

列のルックアップがデータソーススキーマの配列である場合、該当する列にコンボボックス型セルが自動的に適用され、ルックアップ配列のすべての項目がコンボボックスに表示されます。


次のサンプルコードは、テーブルシートでルックアップとして配列値を設定する方法を示します。

var workItemTable = dataManager.addTable("WorkItems", {
  data: [{
      "ID": 1,
      "Date": "9/12/2020",
      "Description": "Know your numbers",
      "TotalPoints": 10,
      "Type": "Homework"
    },
    //... 
  ],
  schema: {
    columns: {
      Date: {
        dataType: "date"
      },
      // ルックアップ列を配列として設定します。
      Type: {
        lookup: ["Homework", "Quiz", "Exam"]
      }
    }
  }
});

リレーションシップ名として定義する

2つのテーブル間のリレーションシップを作成した場合は、データソーススキーマで列のルックアップをリレーションシップ名として定義することができます。この場合、該当する列にボタンと複数列のドロップダウンが自動的に適用されます。このドロップダウンには、関連テーブルのデータが表示されます。


次のサンプルコードは、2つのテーブル間にリレーションシップ(「Students」 と「 Grades」)を作成し、Grades テーブル(リレーションシップ名として 「student」 を使用)のルックアップオプションとして 「Student ID」列を定義する方法を示します。これにより、指定された列で関連テーブル Students をドロップダウンに表示できます。

var studentTable = dataManager.addTable("Students", { 
        data: [ 
            { 
                "ID": 1, 
                "Name": "Ellen Robinson" 
            }, 
            //... 
        ] 
    }); 
    var gradeTable = dataManager.addTable("Grades", { 
        data: [ 
            { 
                "StudentID": 1, 
                "WorkItemID": 1, 
                "Grade": 4 
            }, 
            //... 
        ], 
        schema: { 
            columns: { 
                StudentID: { 
                    lookup: 'student' 
                } 
            } 
        } 
    }); 
    dataManager.addRelationship(gradeTable, "StudentID", "student", studentTable, "ID", "grades"); 

列のオプションを含めて定義する

列ルックアップは、リレーションシップ名とデータソーススキーマのいくつかの列オプションを含めて定義できます。列のルックアップをオプションを含めて定義する場合、列オプションの定義には、値、幅、可視性、およびキャプションの 4 つのオプションを指定できます。


次のサンプルコードは、2つのテーブル間にリレーションシップ(「WorkItems」 と「 Grades」)を作成し、Grades テーブル(リレーションシップ名として 「workItem] を使用)のルックアップオプションとして 「WorkItem ID」列を定義する方法を示します。これにより、指定された列で関連テーブル WorkItems をドロップダウンに表示できます。

var workItemTable = dataManager.addTable("WorkItems", { 
        data: [ 
            { 
                "ID": 1, 
                "Date": "9/12/2020", 
                "Description": "Know your numbers", 
                "TotalPoints": 10, 
                "Type": "Homework" 
            }, 
            //... 
        ] 
    }); 
    var gradeTable = dataManager.addTable("Grades", { 
        data: [ 
            { 
                "StudentID": 1, 
                "WorkItemID": 1, 
                "Grade": 4 
            }, 
            //... 
        ], 
        schema: { 
            columns: { 
                WorkItemID: { 
                    // lookup: { name: 'workItem', columns: ["ID", "Description", "TotalPoints", "Type"]} 
                    lookup: { 
                        name: 'workItem', columns: [ 
                            { value: "ID" }, 
                            { value: "Description", width: 150 }, 
                            { value: "TotalPoints", width: 100 }, 
                            { value: "Type", width: 150, caption: "WorkItem Type" } 
                        ] 
                    } 
                } 
            } 
        } 
    }); 
    dataManager.addRelationship(gradeTable, "WorkItemID", "workItem", workItemTable, "ID", "grades"); 

デザイナの使用

SpreadJS デザイナの[ データソース ]タブを使用して、TableSheet にルックアップ列を設定できます。 データソース タブには、テーブル項目の タブの スキーマ セクションにルックアップオプションがあります。


デフォルトでは、テーブルシートのスキーマセクションから、ルックアップとして「静的配列」を設定できます。これを行うには、次のいずれかの方法を使用できます。

  • ルックアップエディタに配列文字列(例:”123, 628, 325”など)を直接入力する。

  • ルックアップのドロップダウンリストから配列文字列を選択する。


配列ルックアップを設定した後、TableSheet 列のコンボボックスのドロップダウンで配列項目を表示できます。たとえば、以下のように、テーブルシートの 「shipVia」列のルックアップとして配列文字列を表示できます。


テーブルにリレーションシップが設定されいる場合、次のいずれかの方法でスキーマのルックアップとして「リレーションシップ名」を設定できます。

  • ルックアップエディタにリレーションシップ名(例、「Orders_customId」)を直接入する。

  • ルックアップのドロップダウンリストから「リレーションシップ名」項目を選択する。

    lookup-relationshipname

  • 通常、リレーションシップ名をルックアップとして設定する場合、関連する列もスキーマの ルックアップの列オプションの下に表示されます。 TableSheet の複数列ドロップダウンに表示したい任意の列でチェックを付けることができます。

    Lookup-dropdwon-columns

  • 次の例では、テーブルシートの「address」列にリレーションシップ名「Customer_phone」をルックアップとして追加します。 「address」 列にはボタンが追加され、クリックすると、ルックアップの列オプションから選択した列を含む複数列のドロップダウンが表示されます。

    multicolumn-lookup