テーブルシートでは、追加するテーブルシートの構造とプロパティを定義するデータソーススキーマを提供できます。列に異なる dataType を割り当てたり、dataPattern/dataMapを割り当てて、データがテーブルシートにどのように表示されるかについて、データソーススキーマを使用できます。
スキーマは以下のプロパティを含んでいます
プロパティ | タイプ | 説明 |
---|---|---|
type | string | 'json', 'csv', 'xml', 'columnJson' のどれか。 |
countPath | string | データソースコレクションの長さを取得するために、データリーダーが使います。 |
dataPath | string | 解析後にデータソースコレクションを取得するために、データリーダーが使います。 |
columns | GC.Data.IColumnCollection | データソーステーブルの列定義。キーは列名、値はdataType、dataPattern、dataMap、dataNameを含む列の情報。 |
dataType は"string"、"number"、"boolean"、"object"、"array"、または"date"のいずれかを指定できます。"date"は、元の値の実際のデータ型で、JSONデータの中で日付は文字列であり、変換が必要なため、日付の使用に便利です。
dataPattern は、文字列を値に解析するための文字列です。日付文字列の場合は "dd/MM/yyyy"、ブール値文字列の場合はtrueとfalseの値のペア "Yes|No"、数値文字列の場合は小数部の区切り文字 "," などのフォーマッタがあります。
dataMap は、元の値をより意味のある方法で表示するための単純なマップです。キーは数値または文字列で、値は数値、文字列または日付です。
dataName は、データソースにある元のデータフィールドの名前を示し、このプロパティを使用すると、データマネージャで元のフィールド名を新しいフィールド名にマッピングすることができます。
interface GC.Data.IColumnCollection {
[key: string]: GC.Data.IColumn;
}
interface GC.Data.IColumn {
dataName?: string;
dataType?: "string" | "number" | "boolean" | "object" | "array" | "date";
dataPattern?: string;
dataMap?: any;
}
これは、type、dataPath、およびcountPathのサンプルコードです。
var myTable = dataManager.addTable("myTable", {
remote: {
read: {
url: 'https://services.odata.org/OData/OData.svc/Products/',
adapter: 'odata'
}
},
schema: {
type: 'xml',
dataPath: 'feed.entry',
countPath: 'feed.entry.length'
}
});
これは、dataTypeとdataMapのサンプルコードです。
var myTable = dataManager.addTable("myTable", {
remote: {
read: {
url: "https://demodata.mescius.io/northwind/api/v1/Orders"
}
},
schema: {
columns: {
orderDate: {dataType: "date"},
requiredDate: {dataType: "date"},
shippedDate: {dataType: "date"},
shipVia: {dataMap: {1: "Speedy Express", 2: "United Package", 3: "Federal Shipping"}}
}
}
});
これはdataPatternのサンプルコードです。
var myTable = dataManager.addTable("myTable", {
data: [
{ description: "Mow grass", dueDate: "8/11/2021", priority: "High", assignedTo: "Dad", isFinished: "Yes", isEncouraged: "False", credit: "20,75" },
{ description: "Clean Room", dueDate: "8/9/2021", priority: "Medium", assignedTo: "Daughter", isFinished: "No", isEncouraged: "True", credit: "10,50" },
{ description: "Organize Pantry", dueDate: "8/8/2021", priority: "Low", assignedTo: "Son", isFinished: "Yes", isEncouraged: "True", credit: "10,75" },
{ description: "Prepare BBQ", dueDate: "8/12/2021", priority: "High", assignedTo: "Mom", isFinished: "No", isEncouraged: "False", credit: "30,25" }
],
schema: {
columns: {
dueDate: {dataType: "date", dataPattern: "dd/MM/yyyy"},
isFinished: {dataType: "boolean", dataPattern: "Yes|No"},
isEncouraged: {dataType: "boolean", dataPattern: "True|False"},
credit: {dataType: "number", dataPattern: ","}
}
}
});
これはdataNameのサンプルコードです。columnsプロパティのキーはデータマネージャのフィールド名、dataNameは元のデータソースのフィールド名を示しています。
var myTable = dataManager.addTable("myTable", {
remote: {
read: {
url: "https://demodata.mescius.io/northwind/api/v1/Orders"
}
},
schema: {
columns: {
OrderDate: {dataName: "orderDate"},
RequiredDate: {dataName: "requiredDate"},
ShippedDate: {dataName: "shippedDate"},
ShipVia: {dataName: "shipVia"}
}
}
});