[{"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"}]}]
テーブルシートは、複数の関連するテーブルのフィールドを単一の行ビューで表示するクロス列機能を提供します。データ入力のために、テーブルシートをより合理化された行ビューで表示できます。
クロス列を設定するには、 addView メソッドにフィールドを追加する際、各フィールドのcrossプロパティを使用します。crossプロパティはフィールド、属性、フィルター、およびキャプションを設定するのに役立ちます。
次の手順は、テーブルシートに、「package」フィールドの配列値を使用してクロス列を追加します。
データソーススキーマにcolumnsオプションを持つ複数テーブルを追加します。
スキーマでルックアップとして定義されているフィールドのみをクロス列に使用できます。
// dataManagerに顧客テーブルを追加します。
var customerTable = dataManager.addTable("customerTable", {
remote: {
read: {
url: 'https://demodata.grapecity.com/wwi/api/v1/customers'
}
}
});
// dataManagerに販売テーブルを追加します。
var salesTable = dataManager.addTable("salesTable", {
remote: {
read: {
url: 'https://demodata.grapecity.com/wwi/api/v1/sales?PageNumber=10&PageSize=500'
}
},
schema:{
columns:{
package: { lookup: ["Each","Pair"] }, // used for cross column feature
}
}
});
テーブルの主キーを指定します。
customerTable.primaryKey("customerKey")
salesTable.primaryKey("saleKey")
テーブル間にリレーションを追加します。
// 販売テーブルと顧客テーブルのリレーションを追加します。
dataManager.addRelationship(salesTable, "customerKey", "myCustomer", customerTable, "customerKey", "mySales");
クロス列オプションを持つカスタムビューを追加します。
// カスタムビューを追加します。
customerTable.fetch().then(function () {
var selectView = customerTable.addView("customersView",
[
{ value: 'customerKey' },
{ value: 'customer' },
{ value: 'billToCustomer' },
{ value: 'category' },
]);
// リレーショナルビューで使用する複数列のドロップダウンを作成します。
var multiSelectStyle = {
formatter: '{{=IFERROR(CONCAT(PROPERTY(@, "customer"), ", ", PROPERTY(@, "customerKey")), "")}}',
cellButtons: [
{
imageType: "dropdown",
command: "openMultiColumn",
useButtonStyle: true,
}
],
dropDowns: [
{
type: "multiColumn",
option: {
width: 400,
height: 300,
dataSource: selectView,
bindingInfos: [
{ name: "customerKey", size: 100, caption: "Customer Key" },
{ name: "customer", size: "*", caption: "Customer" },
{ name: "category", size: 100, caption: "Category" }
]
}
}
]
};
var myView = salesTable.addView("myView", [
{ value: "saleKey", width: 100, caption: "Sale Key" },
{ value: "salesPerson", width: 150, caption: "Sales Person" },
{ value: "myCustomer", width: 250, caption: "Customer Information", style: multiSelectStyle },
{ value: "address", width: 300, caption: "Address" },
{ value: "stockItem", width: 350, caption: "Stock Item" },
{ value: 'quantity', width: 80,cross: { over: 'package' } } // クロス列
]);
myView.fetch().then(function () {
console.log(myView);
// カスタムビューをテーブルシートに設定します。
tableSheet.setDataView(myView);
});
});
上記の手順に従うと、以下の出力が生成されます。
クロス列機能を使用しない場合は、次のように表示されます。
テーブルシートでサイドパネルを使用することによりクロス列を設定できます。データソーススキーマを定義する際に、columnsオプションにlookupプロパティを設定する必要があります。
次の画像で示すように、クロス列を作成するには、lookupフィールドをクリックすることによりクロス領域を表示して、対象のフィールドをValue領域にドラッグします。
以下の出力が生成されます。