[]
        
(Showing Draft Content)

データマネージャー

データマネージャーは強力なデータエンジンであり、サーバー側に要求を送信して、取得したデータをテーブルシートに連結します。



データマネージャーはデータベースから取得したデータを管理(ソート、フィルター、グループ、集計)し、GC.Data.DataManagerクラスを使用してデータをデータベースに同期します。また、addTableメソッドとaddRelationshipメソッドを使用してテーブルやリレーションをマップします。同様に、DataManagerクラスのメソッドを使用することで、テーブルやリレーションを削除することもできます。

データシートに連結するデータソースで、データマネージャーで作成できるデータソースの種類としてはREST API、OData、GraphQL などのリモート ソースと、JSON のオブジェクト配列、CSV、XML などのローカルソースがサポートされています。

データソースのスキーマ

データソースを追加してデータテーブルを定義するときにスキーマを指定できます。スキーマには、次のプロパティがあります。

プロパティ

説明

type

string

使用するデータ型。'JSON'、'CSV'、'XML'、'columnJson'の一つ。

デフォルトは ’JSON’ です。

countPath

string

データソースコレクションの長さを取得するために使用されます。

dataPath

string

解析後のデータソースコレクションを取得するために使用されます。

columns

GC.Data.IColumnCollection

データソーステーブルの列定義。

キーは列名で、値はデータ型、dataPattern、およびdataMapを含む列情報です。

  • データ型は"string"、"number"、"boolean"、"null"、"object"、"array"や"date"のいずれかです。これは元の値の実際のデータ型です。日付は JSON データでは文字列であり、変換する必要があるため、とくに便利です。

  • dataPattern は、文字列を値に変換するための文字列であり、例えば、日付文字列のフォーマッタ "dd/MM/yyyy"、ブール文字列の "truthy" と "falsy" の値ペア "Yes|No" 、数値文字列の小数点記号 "," などです。

  • dataMapは、元の値をより意味のある形で表示するためのシンプルなマップです。キーは数値または文字列で、値は数値、文字列、または日付です。

  • dataNameは、データソースに使用される元のデータフィールド名を示します。このプロパティを使用すると、データマネージャーで元のフィールド名を新しいフィールド名にマップすることができます。

type=warning

メモ:日付フィールドでは、日付ピッカーが自動的に有効になります。

次の図は、dataType、および dataMapを使用してデータスキーマを示します。

dataname-datatype-datamap.b1c33c

次のサンプルコードは、dataType、および dataMapを使用してデータスキーマを設定する方法を示します。

var dataManager = spread.dataManager();
var customerTable = dataManager.addTable("customerTable", {
    remote: {
        read: {
            url: apiUrl
        }
    },
    schema: {
        columns: {
            validFrom: { dataType: "date" },
            billToCustomer: { dataMap: { "Tailspin Toys (Head Office)": "Tailspin Toys(HO)", "Wingtip Toys (Head Office)": "Wingtip Toys(HO)" } },
            buyingGroup: { dataMap: { "Tailspin Toys": "TT", "Wingtip Toys": "WT" } },
            postalCode: { dataType: "number" }
        }
    }
});

次の図は、dataPatternを使用してデータスキーマを示します。

data-type-and-pattern.09fcd9

次のサンプルコードは、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: {  dataPattern: "Yes|No" },
isEncouraged: { dataType: "boolean", dataPattern: "True|False" },
credit: { dataType: "number", dataPattern: "." }
        }
    }
});

次の図は、dataNameを使用してデータスキーマを示します。

dataName

次のサンプルコードは、dataNameを使用してデータスキーマを設定する方法を示します。

var dataManager = spread.dataManager();
var customerTable = dataManager.addTable("customerTable", {
    remote: {
        read: {
            url: apiUrl
        }
    },
    schema: {
        columns: {
            OrderId: {dataName: "orderId"},
            OrderDate: {dataName: "orderDate"},
            RequiredDate: {dataName: "requiredDate"},
            ShippedDate: {dataName: "shippedDate"},
            ShipVia: {dataName: "shipVia"}
        }
    }
});