要求匯總小計數據
Total 和 Subtotal API 允許具有矩陣資料檢視的自訂視覺效果向 Power BI 主機請求彙總的小計資料。 小計可以針對整個矩陣語意模型來計算,或針對矩陣數據階層中的個別層級來指定。 欲了解有關 Power BI 視覺化中總計和小計 API 的範例,請參閱 範例報告。
注意
自版本 2.6.0 及更高版本開始支持請求小計數據。
rowSubtotalType
屬性可在5.1.0版和更新版本中取得。 若要找出您使用的版本,請檢查 pbiviz.json 檔案中的 apiVersion
。
每當視覺對象重新整理其資料時,視覺對象都會向 Power BI 後端發出 資料提取請求,。 這些資料請求通常是針對使用者拖入視覺效果欄位槽中的欄位值。 有時圖表需要將其他匯總或小計應用於欄位區域(例如總和或計數)。 Total 和 Subtotal API 可讓您自定義傳出數據查詢,以要求更多匯總或小計數據。
小計 API
API 會為每個數據檢視類型提供下列自訂功能(目前僅支持矩陣數據檢視)。
-
rowSubtotals
:( 布爾值) 指出是否應該針對數據列欄位中的所有欄位要求小計數據。 -
rowSubtotalsPerLevel
:(布爾值)指出小計數據是否可以在資料列的欄位區中針對個別欄位進行切換。 -
columnSubtotals
: (boolean) 指出資料行欄位中的所有欄位是否應要求 小計 資料。 -
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也一樣。