注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
ピボットテーブルウィジェットでは、オブジェクトデータを動的にグループ化および集計し、集計したデータをテーブル形式で表示できます。ピボットテーブルウィジェットを設定するモジュール作成者は、次の機能を使用できます。
次の例は、Flight Alerts データを表示し、下流のオブジェクトリストウィジェットを絞り込むように設定されたピボットテーブルウィジェットを示しています。

ピボットテーブルを設定する際、作成者はオブジェクトまたは関数の出力からデータを取得できます。
次の例は、設定前のオブジェクトベースのピボットテーブルの初期状態を示しています。ウィジェットの設定パネルでは、初期入力のベースオブジェクトセットが Flight Alert: All に設定されています。

ピボットテーブルウィジェットには、次の主要な設定オプションがあります。
ピボットテーブルウィジェットは、最大7個の行グルーピングをサポートします。それより多くのグルーピングを使用する必要がある場合は、テーブルの設定に非表示のグルーピングを追加することを検討してください。この方法では、ユーザーが UI で非表示のグルーピングを切り替えられるため、パフォーマンスを維持しながら、上限を超えるグルーピングを効果的に管理できます。
ピボットテーブルウィジェットは、選択したセルを操作するための次のキーボードショートカットをサポートします。
Cmd+C(macOS)または Ctrl+C(Windows)を使用して、選択したセルをタブ区切りの値としてコピーします。出力には、選択に応じて、行グルーピング、集計値、またはその両方が含まれます。Shift+Left および Shift+Right を使用して、選択範囲を行全体、行グルーピングのみ、集計値のみの間で調整します。関数ベースのピボットテーブルは、関数の出力からデータを取得します。
この方法は、次のユースケースで役立ちます。
values という名前のフィールドが必要です。以下は、関数ベースのピボットテーブルに使用できる構造体定義と関数宣言の例です。
この構造体定義では、次のようになっています。
region、productType、productName、year は、グループ化に使用するフィールドです。totalSales と estimatedSales は、ピボットテーブルのセルに表示される値です。どちらのバージョンも、interface キーワードを使用して構造体をカスタム型として宣言します。TypeScript v1 では、クラスメソッドの @Function() デコレーターで関数を登録し、@foundry/functions-api から Integer をインポートします。TypeScript v2 では、ファイルのデフォルトエクスポートとして関数を登録し、@osdk/functions から Integer をインポートします。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22import { Function, Integer } from "@foundry/functions-api"; interface SalesData { region?: string; year?: string; productType?: string; productName?: string; // メトリクスを含む values オブジェクト values: { totalSales: Integer; estimatedSales: Integer; } }; export class MyFunctions { @Function() public salesFunctionBackedPivotTable(): SalesData[] { // ここに実装を記述します return []; } }
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19import { Integer } from "@osdk/functions"; interface SalesData { region?: string; year?: string; productType?: string; productName?: string; // メトリクスを含む values オブジェクト values: { totalSales: Integer; estimatedSales: Integer; } }; export default function salesFunctionBackedPivotTable(): SalesData[] { // ここに実装を記述します return []; }
ドロップダウンで関数を選択した後、ビルダーは次の項目を選択できます。
設定すると、関数から返されたデータがピボットテーブルに表示されます。
関数ベースのピボットテーブルは、合計の表示をサポートしています。合計を表示するには、以下のガイドラインに従った構造体をリストに含めて返します。以下の例では、region と productType が行グルーピングのフィールド、year が列グルーピングのフィールドであるとします。
行合計: すべての行の合計(行合計)を表すには、データポイントから行グルーピングのフィールドを省略します。
例: 2021年の合計を表すデータポイント。
Copied!1 2 3 4 5 6 7{ year: "2021"; values: { totalSales: 622000; estimatedSales: 57000; } };
列合計: すべての列の合計(列合計)を表すには、データポイントから列グルーピングのフィールドを省略します。
例: EU と Clothing の合計を表すデータポイント。
Copied!1 2 3 4 5 6 7 8{ region: "EU"; productType: "Clothing"; values: { totalSales: 57000; estimatedSales: 57000; } }
総計: 総計を表すには、グループ化フィールドをすべて省略します。
Copied!1 2 3 4 5 6{ values: { totalSales: 3147000; estimatedSales: 3160000; } }
null バケットは、欠損データや未定義のデータを表す際に役立ちます。
null バケットを作成するには、次の手順を実行します。
undefined を返します。グループ化フィールドの null 値や欠損値には、空の文字列('')を使用しないでください。Workshop は空の文字列をフィールドが省略されたものとして解釈するため、空の文字列を含むレコードは個別のグルーピング行として表示されず、小計行にまとめられます。実際の null バケットには、常に undefined を使用してください。
以下に例を示します。
Copied!1 2 3 4 5 6 7interface SiteData { site?: string; part?: string | undefined; // undefined データ型が明示されていることに注目してください values: { quantity: Double; } }
Copied!1 2 3 4 5 6 7{ "part": undefined, "source": "SourceA", "values": { "quantity": 100 } }
フィールドを省略することと、undefined を渡すことは異なります。フィールドを省略すると合計が作成され、undefined を渡すと null バケットが作成されます。
展開可能な行を使用すると、ユーザーはより詳細なデータにドリルダウンできます。
展開可能な行を実装するには、次の手順を実行します。
次のインターフェースの場合、設定オプションで productName と productType を展開可能な行として選択します。
Copied!1 2 3 4 5 6 7 8 9 10interface SalesData { region: string; year: string; productType?: string; productName?: string; values: { totalSales: Integer; estimatedSales: Integer; } };
以下に、3段階の展開レベルの例を示します。
region レベルのみ。Copied!1 2 3 4 5 6 7 8 9[ { "region": "NA", "year": "2021", "values": { "totalSales": 30000 } } ]
region と productType。Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26[ { "region": "NA", "year": "2021", "productType": "Clothing", "values": { "totalSales": 90000 } }, { "region": "NA", "year": "2021", "productType": "Electronics", "values": { "totalSales": 150000 } }, { "region": "NA", "year": "2021", "productType": "Furniture", "values": { "totalSales": 60000 } } ]
region、productType、productName。Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29[ { "region": "NA", "year": "2021", "productType": "Electronics", "productName": "ProductA", "values": { "totalSales": 5000 } }, { "region": "NA", "year": "2021", "productType": "Electronics", "productName": "ProductB", "values": { "totalSales": 5000 } }, { "region": "NA", "year": "2021", "productType": "Electronics", "productName": "ProductC", "values": { "totalSales": 5000 } } ]
関数ベースのピボットテーブルで選択された内容は、出力として構造体変数に書き込めます。構造体のフィールドは、関数の出力から取得されます。
ピボットテーブルウィジェットには、次の表示とスタイルのオプションがあります。