Freigeben über


Anfordern aggregierter Teilsummendaten

Mit der Gesamt- und Teilsummen-API können benutzerdefinierte Visuals mit einer Matrixdatenansicht aggregierte Teilsummendaten vom Power BI-Host anfordern. Die Teilergebnisse können sowohl für das gesamte Matrixsemantikmodell berechnet als auch für einzelne Ebenen der Matrixdatenhierarchie angegeben werden. Ein Beispiel für die Gesamt- und Teilergebnis-API in einem Power BI-Visual finden Sie im Beispielbericht.

Anmerkung

Das Anfordern von Teilergebnisdaten wird in Version 2.6.0 und höher unterstützt. Die rowSubtotalType-Eigenschaft ist in Version 5.1.0 und höher verfügbar. Um herauszufinden, welche Version Sie verwenden, überprüfen Sie die apiVersion in der pbiviz.json Datei.

Jedes Mal, wenn ein visuelles Element seine Daten aktualisiert, stellt das visuelle Element eine Datenabrufanforderung an das Power BI-Back-End aus. Diese Datenanforderungen beziehen sich in der Regel auf Werte der Felder, die der Benutzer in die Feldbereiche des Visuals gezogen hat. Manchmal müssen allerdings andere Aggregationen oder Teilergebnisse (z. B. Summe, Anzahl) auf die Feldbereiche angewendet werden. Mit der Gesamt- und Teilergebnis-API können Sie die ausgehende Datenabfrage anpassen, um weitere Aggregations- oder Teilergebnisdaten anzufordern.

Screenshot visueller Elemente mit hervorgehobener Teilergebniszeile und -spalten.

Die Teilsummen-API

Die API bietet die folgende Anpassung für jeden Datenansichtstyp (derzeit nur Matrixdatenansichten).

  • rowSubtotals: (boolesch) Gibt an, ob die Teilergebnisdaten für alle Felder im Feldbereich der Zeile angefordert werden sollen.
  • rowSubtotalsPerLevel: (boolesch) Gibt an, ob die Teilergebnisdaten für einzelne Felder im Feldbereich der Zeile umgeschaltet werden können.
  • columnSubtotals: (boolesch) Gibt an, ob die Teilergebnisdaten für alle Felder im Feldbereich für Spalten angefordert werden sollen.
  • columnSubtotalsPerLevel: (boolesch) Gibt an, ob die Teilergebnisdaten für einzelne Felder im Feldbereich für Spalten umgeschaltet werden können.
  • levelSubtotalEnabled: (boolesch) Gibt an, ob die Teilergebnisse der Zeile oder Spalte angefordert werden. Im Gegensatz zu allen anderen Eigenschaften wird diese Eigenschaft auf einzelne Zeilen oder Spalten angewendet.
  • rowSubtotalsType: („top“ oder „bottom“) Gibt an, ob die Zeile mit den Gesamtergebnisdaten vor (top) oder nach (bottom) den restlichen Daten abgerufen werden soll. Wenn diese Eigenschaft auf bottomfestgelegt ist, kann die Summe nur angezeigt werden, nachdem alle Daten abgerufen wurden. Der Standardwert ist bottom.

Jedem dieser Schalter wird ein Wert zugewiesen, der auf den zugehörigen Eigenschaften im Eigenschaftenbereich und den Standardwerten basiert.

Verwenden der Teilsummen-API

Die capabilities.json-Datei des Visuals muss:

  • geben Sie die Eigenschaft an, welcher jeder -Schalter zugeordnet ist.
  • geben Sie den Standardwert an, der verwendet werden soll, wenn die Eigenschaft nicht definiert ist.

Die Schalter verwenden ein Format wie das folgende Beispiel:

    "rowSubtotals": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "rowSubtotals" 
                }, 
                "defaultValue": true 
            },

Im obigen Code werden die Zeilenteilergebnisse durch die rowSubtotals-Eigenschaft im subTotals-Objekt aktiviert. Die Eigenschaft weist einen Standardwert von true auf.

Die API wird automatisch für ein Visual aktiviert, wenn die Teilergebnisstruktur und alle Schalterzuordnungen in der capabilities.json-Datei definiert wurden.

Der folgende Code ist ein Beispiel für die vollständige API-Konfiguration in der Datei capabilities.json (kopiert aus dem visuellen API-Beispiel).

"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"
            }
        } 
    }

Es ist wichtig, dass die enumerateProperties()-Funktion des Visuals die in der capabilities.json-Datei angegebenen Standardwerte beachtet. Die Anpassungslogik wird gemäß den angegebenen Standardwerten ausgeführt. Wenn die enumerateProperties()-Funktion und die Standardwerte nicht aufeinander abgestimmt sind, können sich die tatsächlichen Teilergebnisanpassungen von den Erwartungen des Benutzers abweichen.

enum RowSubtotalType {
        Top = "Top",
        Bottom = "Bottom",
   }

Um die verfügbaren Anpassungen zu überprüfen, erweitern Sie das Dropdownmenü Teilergebnisse im Eigenschaftenbereich Format. Ändern Sie die Einstellungen für Teilergebnisse, und verfolgen Sie die Änderungen an der Teilergebnisdarstellung (mit dem Namen Gesamtergebnisse) im Visualisierungsbereich nach.

Screenshot des Bereichs

Überlegungen und Einschränkungen

  • Die rowSubtotalsType-Eigenschaft ist nur für Zeilen verfügbar. Spaltenteilergebnisse können nicht auf den Anfang einer Spalte festgelegt werden.

  • Das Feature zum Erweitern und Reduzieren überschreibt rowSubtotals. Teilergebnisse werden angezeigt, wenn die Zeilen erweitert werden, auch wenn rowSubtotals auf false festgelegt ist.

Hinzufügen von Interaktivität zu Visuals mithilfe von Auswahlmöglichkeiten für Power BI-Visuals