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 exempelrapporten för ett exempel på API:et Total och Delsumma i ett visuellt Power BI-objekt.

Kommentar

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 apiVersion du i filen pbiviz.json .

Varje gång ett visuellt objekt uppdaterar sina data utfärdar det visuella objektet en begäran om datahämtning 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ältbrunnarna i det visuella objektet. 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.

Screenshot of visual with subtotals row and columns highlighted.

API:et för delsummor

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

  • rowSubtotals: (booleskt) Anger om delsummadata ska begäras för alla fält i radfältets brunn.
  • rowSubtotalsPerLevel: (booleskt) Anger om delsummadata kan växlas för enskilda fält i radens fältbrunn.
  • columnSubtotals: (booleskt) Anger om delsummorna ska begäras för alla fält i kolumnfältets brunn.
  • columnSubtotalsPerLevel: (booleskt) Anger om delsummadata kan växlas för enskilda fält i kolumnfältets brunn.
  • 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 totalt antal data ska hämtas före (top) eller efter (bottom) resten av data. Om den här egenskapen är inställd bottompå kan summan bara visas när alla data har hämtats. Standardvärdet är bottom.

Var och en av de tidigare listade växlarna 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 den egenskap som vart och ett av ovanstående växlar mappningar 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 subTotals objektet. Egenskapen har standardvärdet true.

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

Följande kod är ett exempel på den fullständiga API-konfigurationen i filen capabilities.json (kopierad från api-exempelvisualiseringen):

"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 funktionen för enumerateProperties() det visuella objektet överensstämmer med de standardvärden som anges i filen capabilities.json . Anpassningslogik fungerar enligt de angivna standardvärdena. Om funktionen enumerateProperties() och standardvärdena inte är justerade kan de faktiska delsummorna 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 fönstret Formategenskap . Ändra delsummornas inställningar och spåra ändringarna i delsummornas presentation (med namnet Summor) i fönstret Visualiseringar.

Screenshot of the Power BI Visualizations pane, which shows the Column and Row subtotals field wells.

Beaktanden 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 dölj åsidosätter rowSubtotals. Delsummor visas när raderna expanderas, även om rowSubtotals de är inställda på false.

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