Partager via


Demander des données de sous-total agrégées

L’API total et sous-total permet aux visuels personnalisés avec une vue de données de matrice de demander des données de sous-total agrégées à partir de l’hôte Power BI. Les sous-totaux sont calculés pour l’ensemble du modèle sémantique de matrice ou spécifiés pour des niveaux individuels de la hiérarchie de données de matrice. Consultez l’exemple de rapport pour obtenir un exemple de l’API Total et Sous-total dans un visuel Power BI.

Note

La demande de données de sous-total est prise en charge dans les versions 2.6.0 et ultérieures. La propriété rowSubtotalType est disponible dans la version 5.1.0 et ultérieure. Pour savoir quelle version vous utilisez, consultez la apiVersion dans le fichier pbiviz.json.

Chaque fois qu’un visuel actualise ses données, le visuel émet une demande d’extraction de données au serveur principal Power BI. Ces demandes de données concernent généralement les valeurs des champs que l’utilisateur a déplacés dans les puits de champ du visuel. Parfois, le visuel a besoin d’autres agrégations ou sous-totaux (par exemple, somme ou nombre) appliqués aux puits de champ. L’API Total et Sous-total vous permet de personnaliser la requête de données sortantes pour demander plus de données d’agrégation ou de sous-total.

Capture d’écran du visuel avec des sous-totaux et des colonnes mises en surbrillance.

L’API sous-totaux

L’API offre la personnalisation suivante pour chaque type de vue de données (actuellement, uniquement les vues de données de matrice).

  • rowSubtotals : (booléen) indique si les données de sous-total doivent être demandées pour tous les champs dans la barre de champs de lignes.
  • rowSubtotalsPerLevel : (booléen) indique si les données de sous-total peuvent être basculées pour les champs individuels dans la barre de champs de la ligne.
  • columnSubtotals : (booléen) indique si les données de sous-total doivent être demandées pour tous les champs dans la barre de champs de colonnes.
  • columnSubtotalsPerLevel : (booléen) indique si les données de sous-total peuvent être basculées pour les champs individuels dans la barre de champs de colonnes.
  • levelSubtotalEnabled: (booléen) Indique si les sous-totaux sont demandés pour la ligne ou la colonne. Contrairement à toutes les autres propriétés, cette propriété est appliquée à des lignes ou colonnes individuelles.
  • rowSubtotalsType: (« Haut » ou « Bas ») Indique si la ligne avec les données totales doit être récupérée avant (top) ou après (bottom) le reste des données. Si cette propriété est définie sur bottom, le total ne peut être affiché qu’une fois que toutes les données ont été extraites. La valeur par défaut est bottom.

Chacun de ces commutateurs reçoit une valeur basée sur les propriétés associées dans le volet de propriétés et les valeurs par défaut.

Comment utiliser l’API de calcul du sous-total

Le fichier capabilities.json du visuel doit :

  • spécifiez la propriété à laquelle chaque interrupteur correspond.
  • indiquez la valeur par défaut à utiliser si la propriété n’est pas définie.

Les commutateurs utilisent un format comme l’exemple suivant :

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

Le code précédent indique que les sous-totaux de ligne sont activés par la propriété rowSubtotals dans l’objet subTotals. La propriété a une valeur par défaut de true.

L’API est automatiquement activée pour un visuel chaque fois que la structure des sous-totaux et tous les mappages de commutateur sont définis dans le fichier capabilities.json.

Le code suivant est un exemple de configuration complète de l’API dans le fichier capabilities.json (copié à partir de l’exemple visuel d’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"
            }
        } 
    }

Il est important que la fonction enumerateProperties() du visuel s’aligne sur les valeurs par défaut spécifiées dans le fichier capabilities.json. La logique de personnalisation fonctionne en fonction des valeurs par défaut spécifiées. Si la fonction enumerateProperties() et les valeurs par défaut ne sont pas alignées, les personnalisations sous-total réelles peuvent différer des attentes des utilisateurs.

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

Pour passer en revue les personnalisations disponibles, développez le menu déroulant Sous-totaux dans le volet de propriétés Format. Modifiez les paramètres des sous-totaux et suivez les modifications apportées à la présentation des sous-totaux (nommées Totals) dans le volet Visualisations.

Capture d’écran du volet Visualisations Power BI, qui montre les zones de sous-totaux de colonnes et de lignes.

Considérations et limitations

  • La propriété rowSubtotalsType n’est disponible que pour les lignes. Vous ne pouvez pas définir les sous-totaux de colonne au début d’une colonne.

  • La fonctionnalité Développer et réduire remplace rowSubtotals. Les sous-totaux s’affichent lorsque les lignes sont développées, même si rowSubtotals est défini sur false.

Ajouter une interactivité au visuel à l’aide de sélections de visuels Power BI