Objets sans interface : perspectives, traductions, lignes de détail
Certains objets du modèle sémantique n'ont aucune interface dans Power BI Desktop : les perspectives, les traductions et les expressions de lignes de détail. La vue TMDL permet de les créer en quelques lignes de script. Source
Les exemples ci-dessous s'appuient sur un modèle simple :
- Table Ventes : colonnes Date, Clé produit, Quantité, Montant HT ; mesures CA HT et Quantité vendue.
- Table Produit : colonnes Clé produit, Produit, Catégorie.
- Relation Ventes[Clé produit] vers Produit[Clé produit].
Mode opératoire commun aux trois exemples :
- Ouvrir la vue TMDL et créer un nouvel onglet vide (ou scripter l'objet existant).
- Coller le script et adapter les noms de tables, colonnes et mesures.
- Cliquer sur Aperçu pour contrôler l'écart, puis sur Appliquer.
- Vérifier le résultat avec une requête DAX dans la vue Requête DAX.
Les scripts ont été vérifiés par sérialisation TMDL avec la bibliothèque Microsoft.AnalysisServices (version 19.118.3).
1 | Perspectives
À quoi sert une perspective
- Une perspective est un sous-ensemble nommé du modèle : quelques tables, colonnes et mesures.
- Dans Power BI, elle sert à filtrer la liste des champs proposée au lecteur lorsqu'il personnalise un visuel ou utilise l'exploration.
- Ce n'est pas un mécanisme de sécurité : tous les objets restent accessibles par ailleurs (utiliser RLS ou OLS pour sécuriser). Source
Exemple 1 : une perspective commerciale
createOrReplace
perspective 'Vue commerciale'
perspectiveTable Ventes
perspectiveMeasure 'CA HT'
perspectiveMeasure 'Quantité vendue'
perspectiveColumn Date
perspectiveTable Produit
perspectiveColumn Catégorie
perspectiveColumn ProduitperspectiveTable: table visible dans la perspective.perspectiveMeasureetperspectiveColumn: objets de cette table retenus ; ceux qui ne sont pas cités n'apparaissent pas.- Le nom contient une espace : il est placé entre apostrophes droites.
Exemple 2 : une seconde perspective pour la logistique
createOrReplace
perspective Logistique
perspectiveTable Ventes
perspectiveMeasure 'Quantité vendue'
perspectiveColumn Date
perspectiveTable Produit
perspectiveColumn ProduitLe montant n'y figure pas : l'équipe logistique ne voit que les quantités dans la liste des champs.
Utiliser la perspective dans le rapport
- Fichier > Options et paramètres > Options > Fichier actif > Paramètres du rapport : cocher Personnaliser les visuels.
- Sélectionner la page, puis volet Format > section Personnaliser le visuel > Perspective du lecteur du rapport : choisir « Vue commerciale ».
- Cliquer sur Appliquer à toutes les pages si besoin.
- Publier ; dans le service, le lecteur qui personnalise un visuel ne voit que les champs de la perspective.

Vérifier dans la vue Requête DAX :
EVALUATE INFO.PERSPECTIVES ()
EVALUATE INFO.PERSPECTIVEMEASURES ()2 | Traductions (métadonnées)
À quoi servent les traductions
- Une culture (par exemple
en-US) porte les traductions des noms de tables, colonnes et mesures, de leurs descriptions et de leurs dossiers d'affichage. - Le service Power BI affiche ces traductions selon la langue du navigateur du lecteur.
- Power BI Desktop n'affiche pas les traductions : le test se fait dans le service. Source
Exemple 3 : traduire le modèle en anglais
createOrReplace
cultureInfo en-US
translations
model Model
table Ventes
caption: Sales
column Date
caption: Date
column Quantité
caption: Quantity
column 'Montant HT'
caption: Amount excl. VAT
measure 'CA HT'
caption: Sales excl. VAT
description: Sum of sales amounts excluding VAT
displayFolder: Revenue
measure 'Quantité vendue'
caption: Quantity sold
table Produit
caption: Product
column Produit
caption: Product
column Catégorie
caption: CategorycultureInfo en-US: la langue et la région traduites.translations>model Model: point d'entrée obligatoire, suivi des tables.- Trois propriétés traduisibles :
caption(nom affiché),description(info-bulle),displayFolder(dossier d'affichage). - Les objets non traduits gardent leur nom d'origine.
Attention : createOrReplace remplace la culture entière. Si la culture existe déjà (Power BI y stocke aussi les métadonnées linguistiques de Questions et réponses), la scripter d'abord et compléter le script plutôt que de repartir de zéro.
Ajouter une seconde langue
Copier le script, remplacer en-US par es-ES et traduire les valeurs. Prévoir une culture par variante régionale utile (fr-FR, fr-BE, fr-CA) : pour les tables et colonnes, le service exige une correspondance exacte de la culture. Source
Tester dans le service
- Publier le rapport dans un espace de travail.
- Ouvrir le rapport et ajouter
?language=en-USà la fin de l'adresse. - Les noms des tables, colonnes et mesures s'affichent en anglais dans les visuels et le volet Données. Source
Vérifier dans la vue Requête DAX :
EVALUATE INFO.CULTURES ()
EVALUATE INFO.OBJECTTRANSLATIONS ()Pour aller plus loin (étiquettes du rapport, données traduites), voir la page Rapports multilangue.
3 | Lignes de détail
À quoi sert une expression de lignes de détail
- Elle définit la table renvoyée quand on demande le détail d'une valeur agrégée : double-clic sur une cellule d'un tableau croisé dynamique Excel connecté au modèle, ou fonction DAX
DETAILROWS. - Sans expression, le détail renvoie toutes les colonnes de la table qui porte la mesure, souvent illisibles (clés techniques).
- Deux niveaux : par mesure (
detailRowsDefinition) ou par défaut pour toutes les mesures d'une table (defaultDetailRowsDefinition). Source
Exemple 4 : détail de la mesure CA HT
createOrReplace
ref table Ventes
measure 'CA HT' = SUM ( Ventes[Montant HT] )
formatString: #,##0.00 €
displayFolder: Chiffre d'affaires
detailRowsDefinition =
SELECTCOLUMNS (
Ventes,
"Date", Ventes[Date],
"Produit", RELATED ( Produit[Produit] ),
"Catégorie", RELATED ( Produit[Catégorie] ),
"Quantité", Ventes[Quantité],
"Montant HT", Ventes[Montant HT]
)ref table Ventes: la table n'est pas redéfinie, seule la mesure est remplacée.- La mesure est remplacée entièrement : reprendre son expression et ses propriétés (
formatString,displayFolder), sinon elles sont perdues. Le plus sûr est de scripter la mesure existante puis d'y ajouter le blocdetailRowsDefinition. RELATEDramène les libellés de la table Produit à la place de la clé technique.
Exemple 5 : un détail par défaut pour toute la table
createOrReplace
ref table Ventes
defaultDetailRowsDefinition =
SELECTCOLUMNS (
Ventes,
"Date", Ventes[Date],
"Produit", RELATED ( Produit[Produit] ),
"Quantité", Ventes[Quantité]
)Toutes les mesures de la table Ventes sans expression propre (ici Quantité vendue) utilisent ce détail.
Tester
Dans la vue Requête DAX :
EVALUATE
CALCULATETABLE (
DETAILROWS ( [CA HT] ),
Produit[Catégorie] = "Vélos"
)La requête renvoie les lignes de ventes de la catégorie Vélos, avec les cinq colonnes définies dans l'expression.
Dans Excel : Analyser dans Excel depuis le service, construire un tableau croisé dynamique avec CA HT par Catégorie, puis double-cliquer sur une valeur : une nouvelle feuille affiche les lignes de détail.
Voir aussi la page Mesures d'expression de détail des lignes.
Récapitulatif
| Objet | Mot-clé TMDL | Où l'effet est visible | Vérification DAX |
| Perspective | perspective | Personnalisation des visuels, exploration | INFO.PERSPECTIVES () |
| Traduction | cultureInfo > translations | Service, selon la langue du navigateur | INFO.OBJECTTRANSLATIONS () |
| Lignes de détail | detailRowsDefinition, defaultDetailRowsDefinition | Excel (double-clic), DETAILROWS | INFO.DETAILROWSDEFINITIONS () |
Retour à la page Vue TMDL et suivi manuel des versions.