集計された小計データを要求する
Total API と Subtotal API を使用すると、マトリックス データ ビューを持つカスタム ビジュアルで、Power BI ホストから集計小計データを要求できます。 小計は、マトリックス セマンティック モデル全体に対して計算されるか、マトリックス データ階層の個々のレベルに対して指定されます。 Power BI ビジュアルの Total API と Subtotal API の例については、サンプル レポートの を参照してください。
手記
小計データの要求は、バージョン 2.6.0 以降でサポートされています。 rowSubtotalType
プロパティは、バージョン 5.1.0 以降で使用できます。 使用しているバージョンを確認するには、pbiviz.json ファイルの apiVersion
を確認します。
ビジュアルがデータを更新するたびに、ビジュアルは Power BI バックエンドに
小計 API
この API では、データ ビューの種類ごとに次のカスタマイズが提供されます (現在、マトリックス データ ビューのみ)。
rowSubtotals
: (ブール値) 行フィールドウェル内のすべてのフィールドに対して小計データを要求するかどうかを示します。rowSubtotalsPerLevel
: (ブール値) 行のフィールド ウェル内の個々のフィールドで小計データを切り替えることができるかどうかを示します。columnSubtotals
: (ブール値) 列のフィールド ウェル内のすべてのフィールドに対して "小計" データを要求すべきかどうかを示します。columnSubtotalsPerLevel
: (ブール値) 列のフィールド ウェル内の個々のフィールドで "小計" データを切り替えることができるかどうかを示します。levelSubtotalEnabled
: (ブール値) 行または列に対して小計が要求されるかどうかを示します。 他のすべてのプロパティとは異なり、このプロパティは個々の行または列に適用されます。rowSubtotalsType
: ("Top" または "Bottom") 合計 データを含む行を、データの残りの部分の前 (top
) または後 (bottom
) に取得するかどうかを示します。 このプロパティがbottom
に設定されている場合、合計は、すべてのデータがフェッチされた後にのみ表示できます。 既定値はbottom
です。
これらの各スイッチには、プロパティ ウィンドウの関連プロパティと既定値に基づいて値が割り当てられます。
小計 API の使用方法
ビジュアルの capabilities.json ファイルでは、次の必要があります。
- 各スイッチがマッピングするプロパティを指定します。
- プロパティが未定義の場合に使用する既定値を指定します。
スイッチは、次の例のような形式を使用します。
"rowSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "rowSubtotals"
},
"defaultValue": true
},
上記のコードは、行の小計が、subTotals
オブジェクトのプロパティ rowSubtotals
によって有効になっていることを示しています。 このプロパティの既定値は true
です。
小計構造とすべてのスイッチ マッピングが capabilities.json ファイルで定義されるたびに、API はビジュアルに対して自動的に有効になります。
次のコードは、capabilities.json ファイル内の完全な API 構成の例です (API サンプル ビジュアルからコピーされます)。
"subtotals": {
"matrix": {
"rowSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "rowSubtotals"
},
"defaultValue": true
},
"rowSubtotalsPerLevel": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "perRowLevel"
},
"defaultValue": false
},
"columnSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "columnSubtotals"
},
"defaultValue": true
},
"columnSubtotalsPerLevel": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "perColumnLevel"
},
"defaultValue": false
},
"levelSubtotalEnabled": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "levelSubtotalEnabled"
},
"defaultValue": true
},
"rowSubtotalsType": {
"propertyIdentifier": {
"objectName": "subtotals",
"propertyName": "rowSubtotalsType"
},
"defaultValue": "Bottom"
}
}
}
ビジュアルの enumerateProperties()
関数は、capabilities.json ファイルで指定された既定値に合わせることが重要です。 カスタマイズ ロジックは、指定された既定値に従って動作します。 enumerateProperties()
関数と既定値が揃っていない場合、実際の小計のカスタマイズはユーザーの期待とは異なる場合があります。
enum RowSubtotalType {
Top = "Top",
Bottom = "Bottom",
}
使用可能なカスタマイズを確認するには、[書式] プロパティ ペインの [小計] ドロップダウン メニューを展開します。 小計の設定を変更し、[視覚化] ウィンドウの小計プレゼンテーション (Totalsという名前) への変更を追跡します。
考慮事項と制限事項
rowSubtotalsType
プロパティは、行に対してのみ使用できます。 列の小計を列の先頭に設定することはできません。展開/折りたたみ機能は
rowSubtotals
をオーバーライドします。rowSubtotals
を false に設定しても、行を展開したときに小計が表示されます。