Utiliser des sélecteurs pour contrôler les visuels qui sont affectés

Certaines fonctionnalités vous permettent d’utiliser des sélecteurs pour contrôler les visuels qui sont affectés. Le sélecteur est facultatif et, lorsqu’il n’apparaît pas, les paramètres s’appliquent à tous les visuels du rapport.

Fonctionnalités prises en charge

Les sélecteurs peuvent être utilisés dans les fonctionnalités suivantes :

Types de sélecteurs

Nom visuel

Appliquez les paramètres uniquement pour le visuel spécifié.

selector: {
    $schema: "http://powerbi.com/product/schema#visualSelector",
    visualName: <a visual name> // You can retrieve the name using `getVisuals`
}

Pour trouver un nom visuel, vous pouvez utiliser l’API getVisuals() sur une page et obtenir la propriété name du visuel. Le nom visuel est un identificateur unique.

Type de visuel

Appliquez les paramètres à tous les visuels du type spécifié.

selector: {
    $schema: "http://powerbi.com/product/schema#visualTypeSelector",
    visualType: <a visual type> // You can retrieve the type using `getVisuals`
}

Pour trouver un type de visuel, vous pouvez utiliser l’API getVisuals() sur une page et obtenir la propriété type du visuel.

Cible de segment

Appliquez l’état du segment uniquement pour les segments avec la cible spécifiée.

selector: {
    $schema: "http://powerbi.com/product/schema#slicerTargetSelector",
    target: <target data field>  
}

Exemples

Paramètres d’en-tête visuel

  • Masquer tous les en-têtes visuels dans le rapport.

    let config = {
        …
        settings: {
            …
            visualSettings: {
                visualHeaders: [
                    {
                        settings: {
                            visible: false
                        }
                        /* No selector - Hide visual header for all the visuals in the report */
                    }
                ]
            }
        }
    };
    
  • Masquez un en-tête visuel pour un visuel spécifique à l’aide du sélecteur visuel.

    let config = {
        …
        settings: {
            …
            visualSettings: {
                visualHeaders: [
                    {
                        settings: {
                            visible: false
                        }
                        selector: {
                            $schema: "http://powerbi.com/product/schema#visualSelector",
                            visualName: "VisualContainer1",
                        }
                    }
                ]
            }
        }
    };
    

Les extensions de commande de menu et les commandes intégrées affichent des sélecteurs de prise en charge.

  • Ajout d’une commande d’extension à un menu d’options visuelles spécifique.

    let config = {
        ...
        settings: {
            ...
    
            // Adding the extension command to the options menu
            extensions: [
                {
                    command: {
                        name: "campaign",
                        title: "Start campaign",
                        icon: base64Icon,
                        selector: {
                            $schema: "http://powerbi.com/product/schema#visualSelector",
                            visualName: tableVisualName
                        },
                        extend: {
                            visualOptionsMenu: {
                                title: "Start campaign",
                                menuLocation: models.MenuLocation.Top,
                            }
                        }
                    }
                },
            ],
        }
    }
    
  • Masquez quelques commandes intégrées pour tous les visuels avec table type.

    let tableSelector = {
        $schema: "http://powerbi.com/product/schema#visualTypeSelector",
        visualType: 'table'
    };
    
    let config = {
        ...
        settings: {
            ...
            // Hiding built-in commands on the options menu
            commands: [
                {
                    spotlight: {
                        selector: tableSelector,
                        displayOption: models.CommandDisplayOption.Hidden,
                    },
                    exportData: {
                        selector: tableSelector,
                        displayOption: models.CommandDisplayOption.Hidden,
                    },
                    seeData: {
                        selector: tableSelector,
                        displayOption: models.CommandDisplayOption.Hidden,
                    },
                }
            ]
        },
    };
    

Segments en charge

Note

Les segments en charge ne prennent pas en charge le sélecteur de type visuel

  • Définir un segment spécifique par nom

    let slicers = [
        {
            selector: {
                $schema: "http://powerbi.com/product/schema#visualSelector",
                visualName: "d1feb8891635af3b335a"
            },
            state: {
                filters: [
                {
                    $schema:"http://powerbi.com/product/schema#advanced",
                    target: {
                        table: "Store",
                        column: "StoreNumber"
                    },
                    filterType: models.FilterType.AdvancedFilter,
                    logicalOperator: "And",
                    conditions: [
                        { operator: "GreaterThanOrEqual", value: 37 },
                        { operator: "LessThanOrEqual", value: 576 }]
                }]
            }
        }
    ];
    
    embedConfig = {
        slicers: slicers,
        ...
    };
    
  • Définir des segments par cible

    // We want to slice all slicers with "StoreNumber" column target
    let target = {
        table: "Store",
        column: "StoreNumber"
    };
    
    let slicers = [
        {
            selector: {
                $schema: "http://powerbi.com/product/schema#slicerTargetSelector",
                target: target
            },
            state: {
                filters: [
                {
                    $schema:"http://powerbi.com/product/schema#advanced",
                    target: target,
                    filterType: models.FilterType.AdvancedFilter,
                    logicalOperator: "And",
                    conditions: [
                        {operator: "GreaterThanOrEqual", value: 37 },
                        {operator: "LessThanOrEqual", value: 576 }]
                }]
            }
        }
    ];
    
    embedConfig = {
        slicers: slicers,
        ...
    };