Dela via


Begära aggregerade delsummor

API:et total och delsumma tillåter anpassade visuella objekt med en matrisdatavy för att begära aggregerade delsummor från Power BI-värden. Delsummorna beräknas för hela matrisens semantiska modell eller anges för enskilda nivåer i matrisdatahierarkin. Se exempelrapport för ett exempel på API:et Total och Delsumma i ett visuellt Power BI-objekt.

Notis

Begäran om delsummor stöds i version 2.6.0 och senare. Egenskapen rowSubtotalType är tillgänglig i version 5.1.0 och senare. Om du vill ta reda på vilken version du använder kontrollerar du apiVersion i filen pbiviz.json.

Varje gång ett visuellt objekt uppdaterar sina data utfärdar det visuella objektet en datahämtningsbegäran till Power BI-serverdelen. Dessa databegäranden är vanligtvis för värden för de fält som användaren drog in i fältområdena i visualiseringen. Ibland behöver det visuella objektet andra aggregeringar eller delsummor (till exempel summa eller antal) som tillämpas på fältbrunnarna. Med API:et Total och Delsumma kan du anpassa den utgående datafrågan för att begära mer aggregerings- eller delsummadata.

Skärmbild av visuellt objekt med delsummor i raden och kolumnerna markerade.

API:et för delsummor

API:et erbjuder följande anpassning för varje datavytyp (för närvarande endast matrisdatavyer).

  • rowSubtotals: (boolean) Anger om delsummedata ska begäras för alla fält i fältdelen för rader.
  • rowSubtotalsPerLevel: (booleskt) Anger om delsummadata kan växlas för enskilda fält i radens fältbrunn.
  • columnSubtotals: (boolesk) Anger om huruvida delsumma data ska begäras för alla fält i kolumnfältet.
  • columnSubtotalsPerLevel: (boolean) Anger huruvida delsumma-data kan växlas för enskilda fält i kolumnfältet.
  • levelSubtotalEnabled: (booleskt) Anger om delsummorna begärs för raden eller kolumnen. Till skillnad från alla andra egenskaper tillämpas den här egenskapen på enskilda rader eller kolumner.
  • rowSubtotalsType: ("Top" eller "Bottom") Anger om raden med totala data ska hämtas före (top) eller efter (bottom) resten av data. Om den här egenskapen är inställd på bottomkan summan bara visas när alla data har hämtats. Standardvärdet är bottom.

Var och en av dessa växlar tilldelas ett värde baserat på de relaterade egenskaperna i egenskapsfönstret och standardvärdena.

Så här använder du delsumma-API:et

Det visuella objektets capabilities.json-fil måste:

  • ange vilken egenskap som varje omkopplare kopplas till.
  • ange det standardvärde som ska användas om egenskapen är odefinierad.

Växlarna använder ett format som liknar följande exempel:

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

Föregående kod anger att radundersummorna aktiveras av egenskapen rowSubtotals i objektet subTotals. Egenskapen har standardvärdet true.

API:et aktiveras automatiskt för ett visuellt objekt när delsummornas struktur och alla switchmappningar definieras i capabilities.json-filen.

Följande kod är ett exempel på den fullständiga API-konfigurationen i den capabilities.json filen (kopieras från det visuella API-exempelobjektet):

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

Det är viktigt att enumerateProperties()-funktionen för det visuella överensstämmer med standardvärdena som anges i capabilities.json-filen. Anpassningslogik fungerar enligt de angivna standardvärdena. Om funktionen enumerateProperties() och standardvärdena inte är justerade kan de faktiska anpassningarna av delsummor skilja sig från användarens förväntningar.

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

Om du vill granska de tillgängliga anpassningarna expanderar du listrutan delsummor i egenskapsfönstret Format. Ändra delsummornas inställningar och spåra ändringarna i delsummornas presentation (med namnet Summor) i fönstret Visualiseringar.

Skärmbild av fönstret Visualiseringar i Power BI, som visar kolumner och rader för undersummor.

Överväganden och begränsningar

  • Egenskapen rowSubtotalsType är endast tillgänglig för rader. Du kan inte ange kolumnundersummor till början av en kolumn.

  • Funktionen expandera och komprimera åsidosätter rowSubtotals. Delsummor visas när raderna expanderas, även om rowSubtotals är inställt på false.

Lägg till interaktivitet i visuella objekt med hjälp av val av visuella Power BI-objekt