Partager via


Utiliser des cibles pour sélectionner le champ de données sur lequel agir

En mode édition Power BI, le volet Champs affiche toutes les tables du modèle avec tous leurs champs de données. Vous pouvez trier, filtrer ou découper des données dans les champs de données pour affecter la façon dont les données s’affichent dans les rapports, les pages ou les visuels.

Un filtre d’analytique incorporée Power BI, un segment ou un tri nécessite un objet cible qui spécifie le champ de données sur lequel agir. Utilisez ITarget pour fournir le champ de données cible lorsque vous :

Types cibles

Un champ de données peut être une colonne, un niveau hiérarchique, une agrégée colonne ou un niveau de hiérarchie, ou une mesure calculée. Les types cibles de l’interface ITarget sont les suivants :

  • IColumnTarget
  • IHierarchyLevelTarget
  • IMeasureTarget
  • IColumnAggrTarget
  • IHierarchyLevelAggrTarget

Colonne

Utilisez IColumnTarget pour cibler la colonne spécifiée dans une table :

target: {
    $schema: "http://powerbi.com/product/schema#column",
    table: "<table name>",
    column: "<column name>"
}

Niveau de hiérarchie

Utilisez IHierarchyLevelTarget pour cibler le niveau de hiérarchie spécifié dans une hiérarchie dans une table :

target: {
    $schema: "http://powerbi.com/product/schema#hierarchyLevel",
    table: "<table name>",
    hierarchy: "<hierarchy name>",
    hierarchyLevel: "<hierarchy level name>"
}

Mesurer

Utilisez IMeasureTarget pour cibler la mesure spécifiée dans une table. La valeur de percentOfGrandTotal est définie sur true si la cible est liée à un visuel et que ses valeurs sont affichées sous la forme d’un pourcentage du total général.

target: {
    $schema: "http://powerbi.com/product/schema#measure",
    table: "<table name>",
    measure: "<measure name>",
    percentOfGrandTotal?: boolean
}

Fonctions d’agrégation

Vous pouvez spécifier des fonctions d’agrégation pour les cibles au niveau des colonnes et des hiérarchies. La variable aggregationFunction est facultative et, si vous ne le fournissez pas, les champs de données utilisent la fonction d’agrégation par défaut Sum. D’autres valeurs prises en charge pour aggregationFunction sont les suivantes :

  • Avg
  • DoNotSummarize
  • Count
  • CountNonNull
  • Max
  • Median
  • Min
  • StandardDeviation
  • Variance

Colonne agrégée

Utilisez IColumnAggrTarget pour spécifier une fonction d’agrégation sur la colonne spécifiée dans une table. La valeur de 'percentOfGrandTotal' est définie sur true si la cible est liée à un visuel et ses valeurs sont affichées sous la forme d’un pourcentage du total général.

target: {
    $schema: "http://powerbi.com/product/schema#columnAggr",
    table: "<table name>",
    column: "<column name>",
    aggregationFunction: "<aggregation function>", // Optional, default is Sum.
    percentOfGrandTotal?: boolean
}

Niveau de hiérarchie agrégé

Utilisez IHierarchyLevelAggrTarget pour spécifier une fonction d’agrégation au niveau de hiérarchie spécifié dans une hiérarchie d’une table. La valeur de 'percentOfGrandTotal' est définie sur true si la cible est liée à un visuel et ses valeurs sont affichées sous la forme d’un pourcentage du total général.

target: {
    $schema: "http://powerbi.com/product/schema#hierarchyLevelAggr",
    table: "<table name>",
    hierarchy: "<hierarchy name>",
    hierarchyLevel: "<hierarchy level name>",
    aggregationFunction: "<aggregation function>", // Optional, default is Sum.
    percentOfGrandTotal?: boolean
}

Exemples

Les exemples de code suivants utilisent l’objet target pour spécifier le champ de données sur lequel un filtre doit agir.

Exemple de cible de colonne

L’exemple de code suivant applique un filtre de base avec une cible de colonne à un rapport. Le code agit sur la colonne région de la table géographique afin que seules les données de la région Ouest s’affichent dans le rapport.

let filter = {
    $schema: "http://powerbi.com/product/schema#basic",
    target: {
        $schema: "http://powerbi.com/product/schema#column",
        table: "Geo",
        column: "Region"
    },
    operator: "In",
    values: ["West"]
};

Exemple de cible au niveau de la hiérarchie

L’exemple de code suivant applique un filtre de base avec une cible au niveau de la hiérarchie à un rapport. Le code agit sur le niveau mois de la hiérarchie OrderDate de la table Sales afin que seules les données de la région Ouest s’affichent sous ce niveau de hiérarchie dans le rapport.

let filter = {
    $schema: "http://powerbi.com/product/schema#basic",
    target: {
        $schema: "http://powerbi.com/product/schema#hierarchyLevel",
        table: "Sales",
        hierarchy: "OrderDate",
        hierarchyLevel: "Month"
    },
    operator: "In",
    values: ["West"]
};

Exemple de cible de mesure

L’exemple de code suivant applique un filtre avancé avec une cible de mesure à un visuel. Le code agit sur la mesure Volume total de catégorie dans la table SalesFact afin qu’elle apparaisse uniquement lorsque la valeur n’est pas vide.

let filter = {
    $schema: "http://powerbi.com/product/schema#advanced",
    target: {
        $schema: "http://powerbi.com/product/schema#measure",
        table: "SalesFact",
        measure: "Total Category Volume"
    },
    filterType: models.FilterType.AdvancedFilter,
    logicalOperator: "And",
    conditions: [{
        operator: "IsNotBlank"
    }]
}

Exemple de cible de colonne agrégée

Le code suivant définit une cible d’agrégation de colonnes qui correspond à la somme des valeurs dans la colonne Store de la table Sales :

let columnAggregation = {
    $schema: "http://powerbi.com/product/schema#columnAggr",
    table: "Store",
    column: "Sales",
    aggregationFunction: "Sum"
};