Les Thèmes de rapport vous permettent d’appliquer un thème de couleur à un rapport entier. Il peut s’agir des couleurs de votre organisation, de teintes saisonnières, ou de tout autre thème de votre choix. Lorsque vous appliquez un thème de rapport, tous les visuels du rapport utilisent les couleurs du thème sélectionné (à quelques exceptions près, décrites plus loin dans cet article).

Pour appliquer un thème de rapport, vous devez disposer d’un fichier JSON établissant une structure de base, que vous pouvez ensuite importer dans Power BI Desktop et appliquer à votre rapport. La structuration du fichier JSON et le processus d’importation sont des opérations faciles et rapides (quelques clics suffisent).

À partir de la publication de septembre 2017 de Power BI Desktop, vous pouvez définir davantage d’éléments de thème de rapport à l’aide d’un fichier JSON, ainsi que personnaliser (et standardiser) presque tous les éléments à l’aide du fichier JSON ajustable manuellement dans le volet Mise en forme. L’objectif de la publication de septembre 2017 (et des publications ultérieures) est de permettre un contrôle complet et précis de l’apparence des rapports.

Activer la fonctionnalité Thèmes de rapport en version préliminaire

Vous pouvez essayer la nouvelle fonctionnalité Thème de rapports à partir de la version de mars 2017 de Power BI Desktop. Pour activer cette fonctionnalité en version préliminaire, sélectionnez Fichier > Options et paramètres > Options > Fonctionnalités en version préliminaire, puis activez la case à cocher en regard de Thèmes de rapport personnalisés. Après avoir effectué la sélection, vous devez redémarrer Power BI Desktop.

Fonctionnement des thèmes de rapport

Pour appliquer un thème de rapport à un rapport Power BI Desktop, sélectionnez le bouton Changer de thème dans le ruban Accueil, puis Importer un thème dans la liste déroulante.

Une fenêtre s’affiche dans laquelle vous pouvez naviguer pour accéder à l’emplacement du fichier de thème JSON. Power BI Desktop recherche des fichiers JSON, c’est-à-dire le type de fichier de thème rapport Power BI. Dans l’image suivante, quelques fichiers de thème des vacances sont disponibles. Nous allons sélectionner un thème de vacances correspondant au mois de mars.

Une fois le fichier de thème correctement chargé, Power BI Desktop vous en informe.

À présent que nous avons importé un fichier de thème, examinons la structure simple et claire du fichier JSON.

Structure d’un fichier JSON de thème de rapport

Ouvert dans un éditeur, le fichier JSON de base sélectionné dans la section précédente (St Patricks Day.json) ressemble à ceci.

Ce fichier JSON doit contenir les lignes suivantes :

  • name : il s’agit du nom du thème, qui est le seul champ obligatoire.
  • dataColors : il s’agit de la liste des codes hexadécimaux des couleurs à utiliser pour les données dans les visuels Power BI Desktop. Cette liste peut contenir un nombre quelconque de couleurs.
  • background, foreground et tableAccent : ces valeurs sont des couleurs à utiliser dans des visuels de table et de matrice. La manière dont ces couleurs sont utilisées varie selon le style de table ou de matrice appliqué. Les visuels de table et de matrice appliquent ces styles par défaut.

Pour appliquer un style à un visuel de table ou de matrice, sélectionnez-le. Dans le volet Visualisations, sélectionnez la section Format, puis développez Style de matrice et choisissez un style dans la liste déroulante Style.

Afin de faciliter l’opération de copier-coller pour créer votre propre fichier JSON, voici le texte du fichier *St Patricks Day.json* :

{
    "name": "St Patricks Day",
    "dataColors": ["#568410", "#3A6108", "#70A322", "#915203", "#D79A12", "#bb7711", "#114400", "#aacc66"],
    "background":"#FFFFFF",
    "foreground": "#3A6108",
    "tableAccent": "#568410"
}

À partir de là, vous pouvez entrer votre propre code hexadécimal pour les couleurs sélectionnées.

À partir de la publication de septembre 2017 de Power BI Desktop, le fichier JSON peut être beaucoup plus complexe. Dans le fichier JSON, vous définissez uniquement la mise en forme que vous souhaitez affecter, et tout ce qui n’est pas spécifié dans le fichier JSON prend simplement les paramètres par défaut de Power BI.

Les avantages de la création d’un fichier JSON sont nombreux. Par exemple, vous pouvez spécifier que tous les graphiques utilisent une taille de police de 12 points ou que certains visuels utilisent une famille de polices particulière, ou désactiver les étiquettes de données pour des types de graphiques spécifiques.

Grâce à la possibilité d’utiliser un fichier JSON granulaire, vous pouvez créer un fichier de thèmes qui normalise vos graphiques et rapports, facilitant ainsi la mise en cohérence des rapports de votre organisation.

Pour plus d’informations sur le format du fichier JSON détaillé, voir la section Format de fichier de JSON de thèmes de rapport à la fin de cet article.

Comment les couleurs de thème de rapport restent associées à celui-ci

Lorsque vous publiez votre rapport sur le Service Power BI, les couleurs de thème du rapport restent associées à celui-ci.

De plus, la section Couleurs des données du volet Format reflète votre thème de rapport. Par exemple, après avoir appliqué la palette de couleurs vertes et marron du thème St. Patrick's Day, lorsque nous sélectionnons un élément visuel, puis accédons à Format > Couleurs des données nous voyons ce qui suit.

Vous voyez tout ce vert ? C’est parce que ces couleurs faisaient partie du thème de rapport que nous avons importé et appliqué.

Situations où les couleurs de thème de rapport ne restent pas associées à vos rapports

Si vous appliquez un jeu de couleurs personnalisé (ou une couleur) à un point de données spécifique dans un visuel, l’application d’un thème de rapport n’a pas pour effet de remplacer cette couleur de point de données personnalisée.

De plus, si vous avez défini manuellement la couleur d’un point de données via la section Couleurs du thème de la palette de couleurs, cette couleur n’est pas mise à jour lorsque vous appliquez un nouveau thème de rapport. Pour rétablir votre couleurs par défaut (de façon à ce qu’elles soient mises à jour quand vous appliquez un nouveau thème de rapport), vous pouvez sélectionner Rétablir les valeurs par défaut dans la palette Couleurs du thème.

Par ailleurs, bon nombre d’éléments visuels personnalisés n’appliquent pas les thèmes de rapport.

Fichiers de thème de rapport que vous pouvez utiliser dès à présent

Vous voulez commencer à utiliser des thèmes de rapports ? Excellent ! Voici quelques fichiers JSON de thème de rapport prêts à l’emploi, que vous pouvez télécharger et importer dans votre rapport Power BI Desktop, ainsi qu’une image de ce thème de rapport appliqué au rapport utilisé dans cet article.

  • Voici enfin un thème adorable (Valentine's Day) qui retiendra à coup sûr votre attention.

Pour vous éviter de devoir télécharger le thème Valentine's Day, voici le code de son fichier JSON :

{
    "name": "Valentine's Day",
    "dataColors": ["#990011", "#cc1144", "#ee7799", "#eebbcc", "#cc4477", "#cc5555", "#882222", "#A30E33"],
    "background":"#FFFFFF",
    "foreground": "#ee7799",
    "tableAccent": "#990011"
}

Les Thèmes de rapport vous permettent de colorer vos rapports Power BI Desktop de façon à refléter votre personnalité, l’image de votre organisation, voire une ambiance saisonnière. Profitez-en. C’est facile !

Format de fichier de JSON de thèmes de rapport

Le fichier JSON de base comprend cinq lignes obligatoires :

  • name : il s’agit du nom du thème, qui est le seul champ obligatoire.
  • dataColors : il s’agit de la liste des codes hexadécimaux des couleurs à utiliser pour les données dans les visuels Power BI Desktop. Cette liste peut contenir un nombre quelconque de couleurs.
  • background, foreground et tableAccent : ces valeurs sont des couleurs à utiliser dans des visuels de table et de matrice. La manière dont ces couleurs sont utilisées varie selon le style de table ou de matrice appliqué. Les visuels de table et de matrice appliquent ces styles par défaut.

Pour créer un fichier JSON de format étendu, avec un contrôle plus précis et détaillé de la mise en forme, vous devez ajouter au fichier JSON une section visualStyles dans laquelle incorporer les spécificités de la mise en forme. Le format de la section visualStyles est le suivant :

visualStyles: {
    visualName: {
        styleName: {
            cardName: [{
                propertyName: propertyValue
            }]
        }
    }
}

Pour les sections visualName et cardName, vous pouvez entrer un visuel et un nom de carte spécifiques, ou utiliser un astérisque (« * ») si vous souhaitez que le paramètre s’applique à l’ensemble des visuels ou des cartes contenant une propriété pour un visuel spécifique. Vous pouvez utiliser l’astérisque (« * ») si vous souhaitez appliquer un paramètre de manière globale dans votre rapport, tel qu’une taille de police ou une famille de polices spécifique, à utiliser dans tous les visuels figurant dans votre rapport.

Remarque : vous devez uniquement spécifier les éléments de mise en forme que vous souhaitez affecter. Tous les éléments de mise en forme non inclus dans le fichier JSON reprennent simplement leurs valeurs et paramètres par défaut.

Définitions d’élément de fichier JSON

Les tableaux de cette section définissent les noms de visuel (visualName), les noms de carte (cardName) et les énumérations nécessaires à la création de votre fichier JSON.

Lorsque vous utilisez dateTime, la date doit être une date ISO entre apostrophes, avec la valeur de date/heure au début, comme suit :

“datetime’2011-10-05T14:48:00.000Z’”

Les valeurs booléennes sont true (vrai) ou false (faux). Les chaînes doivent être entre guillemets, comme dans "ceci est une chaînes".

visualName
accessibleTable
animatedNumber
areaChart
barChart
basicShape
bingSocialNews
bingSocialTweets
card
cheerMeter
clusteredBarChart
clusteredColumnChart
columnChart
comboChart
consoleWriter
dataDotChart
dataDotClusteredColumnComboChart
dataDotStackedColumnComboChart
dataViewer
debugVisual
donutChart
filledMap
funnel
gauge
heatMap
helloIVisual
hundredPercentStackedBarChart
hundredPercentStackedColumnChart
image
kpi
lineChart
lineClusteredColumnComboChart
lineStackedColumnComboChart
map
matrix
multiRowCard
graphique à secteurs
tableau croisé dynamique
realTimeLineChart
ribbonChart
scatterChart
scriptVisual
shapeMap
slicer
stackedAreaChart
sunburst
table
tableEx
zone de texte
treemap
waterfallChart

Le tableau suivant définit les valeurs de cardName. La première valeur de chaque cellule est celle du fichier JSON, et la deuxième le nom de la carte, tel qu’affiché dans l’interface utilisateur de Power BI Desktop.

cardName
axis : Axe de la jauge
breakdown : Répartition
bubbles : Bulles
calloutValue : Valeur de la légende
card : Carte
cardTitle : Titre de carte
categoryAxis : Axe X
categoryLabels : Étiquettes de catégorie
clustering  : non défini
colorBorder : Limite de couleur
colorByCategory : Couleur par catégorie
columnFormatting : Mise en forme des champs
en-têtes de colonne : En-têtes de colonne
columnWidth : non défini
currentFrameIndex : non défini
data : non défini
dataLabels : Étiquettes des données
dataPoint : Couleurs des données
date : Entrées de date
dateRange : Plage de dates
defaultColors : Couleur par défaut
fill : Remplissage
fillPoint : Point de remplissage
filters : non défini
forecast : Prévision
general : Général
goals : Objectifs
grid : Grille
header : En-tête
imageScaling : Mise à l’échelle
indicator : Indicateur
items : Éléments
labels : Étiquettes des données
legend : Légende
line : Ligne
lineStyles : Formes
mapControls : Commandes de la carte
mapStyles : Styles de la carte
numericInputStyle : Entrées numériques
percentBarLabel : Étiquette de taux de conversion
plotArea : Zone de traçage
plotAreaShading : Symétrie en grisé
ratioLine : Ligne du ratio
referenceLine : Ligne de constante
ribbonChart : Rubans
rotation : Rotation
rowHeaders : En-têtes de ligne
scalarKey : non défini
script : non défini
selection : Contrôles de sélection
sentimentColors : Couleurs de sentiment
shape : Forme
slider : Curseur
status : Code couleur
subTotals : Sous-totaux
target : Cible
total : Total général
trend : Courbe de tendance
trendline : Axe de la tendance
valueAxis : Axe Y
values : Valeurs
wordWrap : Retour automatique à la ligne
xAxisReferenceLine : Ligne de constante de l’axe X
y1AxisReferenceLine : Ligne de constante
zoom : Zoom

La section suivante définit les énumérations que vous pouvez utiliser dans le fichier JSON.

{
    "legend": {
        "position": [
            {
                "value": "Top",
                "displayName": "Top"
            },
            {
                "value": "Bottom",
                "displayName": "Bottom"
            },
            {
                "value": "Left",
                "displayName": "Left"
            },
            {
                "value": "Right",
                "displayName": "Right"
            },
            {
                "value": "TopCenter",
                "displayName": "Top Center"
            },
            {
                "value": "BottomCenter",
                "displayName": "Bottom Center"
            },
            {
                "value": "LeftCenter",
                "displayName": "Left Center"
            },
            {
                "value": "RightCenter",
                "displayName": "Right center"
            }
        ],
        "legendMarkerRendering": [
            {
                "value": "markerOnly",
                "displayName": "Markers only"
            },
            {
                "value": "lineAndMarker",
                "displayName": "Line and markers"
            },
            {
                "value": "lineOnly",
                "displayName": "Line only"
            }
        ]
    },
    "categoryAxis": {
        "axisScale": [
            {
                "value": "linear",
                "displayName": "Linear"
            },
            {
                "value": "log",
                "displayName": "Log"
            }
        ],
        "axisType": [
            {
                "value": "Scalar",
                "displayName": "Continuous"
            },
            {
                "value": "Categorical",
                "displayName": "Categorical"
            }
        ],
        "axisStyle": [
            {
                "value": "showTitleOnly",
                "displayName": "Show title only"
            },
            {
                "value": "showUnitOnly",
                "displayName": "Show unit only"
            },
            {
                "value": "showBoth",
                "displayName": "Show both"
            }
        ],
        "gridlineStyle": [
            {
                "value": "dashed",
                "displayName": "Dashed"
            },
            {
                "value": "solid",
                "displayName": "Solid"
            },
            {
                "value": "dotted",
                "displayName": "Dotted"
            }
        ],
        "position": [
            {
                "value": "Left",
                "displayName": "Left"
            },
            {
                "value": "Right",
                "displayName": "Right"
            }
        ]
    },
    "valueAxis": {
        "position": [
            {
                "value": "Left",
                "displayName": "Left"
            },
            {
                "value": "Right",
                "displayName": "Right"
            }
        ],
        "axisScale": [
            {
                "value": "linear",
                "displayName": "Linear"
            },
            {
                "value": "log",
                "displayName": "Log"
            }
        ],
        "axisStyle": [
            {
                "value": "showTitleOnly",
                "displayName": "Show title only"
            },
            {
                "value": "showUnitOnly",
                "displayName": "Show unit only"
            },
            {
                "value": "showBoth",
                "displayName": "Show both"
            }
        ],
        "gridlineStyle": [
            {
                "value": "dashed",
                "displayName": "Dashed"
            },
            {
                "value": "solid",
                "displayName": "Solid"
            },
            {
                "value": "dotted",
                "displayName": "Dotted"
            }
        ],
        "secPosition": [
            {
                "value": "Left",
                "displayName": "Left"
            },
            {
                "value": "Right",
                "displayName": "Right"
            }
        ],
        "secAxisScale": [
            {
                "value": "linear",
                "displayName": "Linear"
            },
            {
                "value": "log",
                "displayName": "Log"
            }
        ],
        "secAxisStyle": [
            {
                "value": "showTitleOnly",
                "displayName": "Show title only"
            },
            {
                "value": "showUnitOnly",
                "displayName": "Show unit only"
            },
            {
                "value": "showBoth",
                "displayName": "Show both"
            }
        ]
    },
    "lineStyles": {
        "strokeLineJoin": [
            {
                "value": "miter",
                "displayName": "Miter"
            },
            {
                "value": "round",
                "displayName": "Round"
            },
            {
                "value": "bevel",
                "displayName": "Bevel"
            }
        ],
        "lineStyle": [
            {
                "value": "dashed",
                "displayName": "Dashed"
            },
            {
                "value": "solid",
                "displayName": "Solid"
            },
            {
                "value": "dotted",
                "displayName": "Dotted"
            }
        ],
        "markerShape": [
            {
                "value": "circle",
                "displayName": "●"
            },
            {
                "value": "square",
                "displayName": "■"
            },
            {
                "value": "diamond",
                "displayName": "◆"
            },
            {
                "value": "triangle",
                "displayName": "▲"
            },
            {
                "value": "x",
                "displayName": "☓"
            },
            {
                "value": "shortDash",
                "displayName": " -"
            },
            {
                "value": "longDash",
                "displayName": "—"
            },
            {
                "value": "plus",
                "displayName": "+"
            }
        ]
    },
    "trend": {
        "style": [
            {
                "value": "dashed",
                "displayName": "Dashed"
            },
            {
                "value": "solid",
                "displayName": "Solid"
            },
            {
                "value": "dotted",
                "displayName": "Dotted"
        }
    ]
},
"y1AxisReferenceLine": {
    "style": [
        {
            "value": "dashed",
            "displayName": "Dashed"
        },
        {
            "value": "solid",
            "displayName": "Solid"
        },
        {
            "value": "dotted",
            "displayName": "Dotted"
        }
    ],
    "position": [
        {
            "value": "back",
            "displayName": "Behind"
        },
        {
            "value": "front",
            "displayName": "In Front"
        }
    ],
    "dataLabelText": [
        {
            "value": "Value",
            "displayName": "Value"
        },
        {
            "value": "Name",
            "displayName": "Name"
        },
        {
            "value": "ValueAndName",
            "displayName": "Name and Value"
        }
    ],
    "dataLabelHorizontalPosition": [
        {
            "value": "left",
            "displayName": "Left"
        },
        {
            "value": "right",
            "displayName": "Right"
        }
    ],
    "dataLabelVerticalPosition": [
        {
            "value": "above",
            "displayName": "Above"
        },
        {
            "value": "under",
            "displayName": "Under"
        }
    ]
},
"referenceLine": {
    "style": [
        {
            "value": "dashed",
            "displayName": "Dashed"
        },
        {
            "value": "solid",
            "displayName": "Solid"
        },
        {
            "value": "dotted",
            "displayName": "Dotted"
        }
    ],
    "position": [
        {
            "value": "back",
            "displayName": "Behind"
        },
        {
            "value": "front",
            "displayName": "In Front"
        }
    ],
    "dataLabelText": [
  {
    "value": "Value",
    "displayName": "Value"
  },
  {
    "value": "Name",
    "displayName": "Name"
  },
  {
    "value": "ValueAndName",
    "displayName": "Name and Value"
  }
],
"dataLabelHorizontalPosition": [
  {
    "value": "left",
    "displayName": "Left"
  },
  {
    "value": "right",
    "displayName": "Right"
  }
],
"dataLabelVerticalPosition": [
  {
    "value": "above",
    "displayName": "Above"
  },
  {
    "value": "under",
    "displayName": "Under"
  }
]
},
"labels": {
"labelOrientation": [
  {
    "value": "vertical",
    "displayName": "Vertical"
  },
  {
    "value": "horizontal",
    "displayName": "Horizontal"
  }
],
"labelPosition": [
  {
    "value": "Auto",
    "displayName": "Auto"
  },
  {
    "value": "InsideEnd",
    "displayName": "Inside End"
  },
  {
    "value": "OutsideEnd",
    "displayName": "Outside End"
  },
  {
    "value": "InsideCenter",
    "displayName": "Inside Center"
  },
  {
    "value": "InsideBase",
    "displayName": "Inside Base"
  }
],
"labelStyle": [
  {
    "value": "Category",
    "displayName": "Category"
  },
  {
    "value": "Data",
    "displayName": "Data value"
  },
  {
    "value": "Percent of total",
    "displayName": "Percent of total"
  },
  {
    "value": "Both",
    "displayName": "Category, data value"
  },
  {
    "value": "Category, percent of total",
    "displayName": "Category, percent of total"
  },
  {
    "value": "Data value, percent of total",
    "displayName": "Data value, percent of total"
  },
  {
    "value": "Category, data value, percent of total",
    "displayName": "All detail labels"
  }
 ]
},
"card": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
     ]
},
"imageScaling": {
    "imageScalingType": [
      {
        "value": "Normal",
        "displayName": "Normal"
      },
      {
        "value": "Fit",
        "displayName": "Fit"
      },
      {
        "value": "Fill",
        "displayName": "Fill"
      }
    ]
},
"forecast": {
    "confidenceBandStyle": [
      {
        "value": "fill",
        "displayName": "Fill"
      },
      {
        "value": "line",
        "displayName": "Line"
      },
      {
        "value": "none",
        "displayName": "None"
      }
    ],
    "style": [
      {
        "value": "dashed",
        "displayName": "Dashed"
      },
      {
        "value": "solid",
        "displayName": "Solid"
      },
      {
        "value": "dotted",
        "displayName": "Dotted"
      }
    ]
    },
    "mapStyles": {
    "mapTheme": [
      {
        "value": "aerial",
        "displayName": "Aerial"
      },
      {
        "value": "canvasDark",
        "displayName": "Dark"
      },
      {
        "value": "canvasLight",
        "displayName": "Light"
      },
      {
        "value": "grayscale",
        "displayName": "Grayscale"
      },
      {
        "value": "road",
        "displayName": "Road"
      }
    ]
},
"shape": {
    "projectionEnum": [
      {
        "value": "albersUsa",
        "displayName": "Albers USA"
      },
      {
        "value": "equirectangular",
        "displayName": "Equirectangular"
      },
      {
        "value": "mercator",
        "displayName": "Mercator"
      },
      {
        "value": "orthographic",
        "displayName": "Orthographic"
      }
    ]
    },
    "xAxisReferenceLine": {
    "style": [
      {
        "value": "dashed",
        "displayName": "Dashed"
      },
      {
        "value": "solid",
        "displayName": "Solid"
      },
      {
        "value": "dotted",
        "displayName": "Dotted"
      }
    ],
    "position": [
      {
        "value": "back",
        "displayName": "Behind"
      },
      {
        "value": "front",
        "displayName": "In Front"
      }
    ],
    "dataLabelText": [
      {
        "value": "Value",
        "displayName": "Value"
      },
      {
        "value": "Name",
        "displayName": "Name"
      },
      {
        "value": "ValueAndName",
        "displayName": "Name and Value"
      }
    ],
    "dataLabelHorizontalPosition": [
      {
        "value": "left",
        "displayName": "Left"
      },
      {
        "value": "right",
        "displayName": "Right"
      }
    ],
    "dataLabelVerticalPosition": [
      {
        "value": "above",
        "displayName": "Above"
      },
      {
        "value": "under",
        "displayName": "Under"
      }
    ]
    },
    "ratioLine": {
    "style": [
      {
        "value": "dashed",
        "displayName": "Dashed"
      },
      {
        "value": "solid",
        "displayName": "Solid"
      },
      {
        "value": "dotted",
        "displayName": "Dotted"
      }
    ]
    },
    "columnHeaders": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "values": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "total": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "rowHeaders": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "subTotals": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ],
    "rowSubtotalsPosition": [
      {
        "value": "Top",
        "displayName": "Top"
      },
      {
        "value": "Bottom",
        "displayName": "Bottom"
      }
    ]
    },
    "general": {
    "orientation": [
      {
        "value": "vertical",
        "displayName": "Vertical"
      },
      {
        "value": "horizontal",
        "displayName": "Horizontal"
      }
    ]
    },
    "data": {
    "relativeRange": [
      {
        "value": "Last",
        "displayName": "Last"
      },
      {
        "value": "Next",
        "displayName": "Next"
      },
      {
        "value": "This",
        "displayName": "This"
      }
    ],
    "relativePeriod": [
      {
        "value": "None",
        "displayName": "Select"
      },
      {
        "value": "Days",
        "displayName": "Days"
      },
      {
        "value": "Weeks",
        "displayName": "Weeks"
      },
      {
        "value": "Calendar Weeks",
        "displayName": "Weeks (Calendar)"
      },
      {
        "value": "Months",
        "displayName": "Months"
      },
      {
        "value": "Calendar Months",
        "displayName": "Months (Calendar)"
      },
      {
        "value": "Years",
        "displayName": "Years"
      },
      {
        "value": "Calendar Years",
        "displayName": "Years (Calendar)"
      }
    ],
    "mode": [
      {
        "value": "Between",
        "displayName": "Between"
      },
      {
        "value": "Before",
        "displayName": "Before"
      },
      {
        "value": "After",
        "displayName": "After"
      },
      {
        "value": "Basic",
        "displayName": "List"
      },
      {
        "value": "Dropdown",
        "displayName": "Dropdown"
      },
      {
        "value": "Relative",
        "displayName": "Relative"
      },
      {
        "value": "Single",
        "displayName": "Single Value"
      }
    ]
    },
    "header": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "items": {
    "outline": [
      {
        "value": "None",
        "displayName": "None"
      },
      {
        "value": "BottomOnly",
        "displayName": "Bottom only"
      },
      {
        "value": "TopOnly",
        "displayName": "Top only"
      },
      {
        "value": "LeftOnly",
        "displayName": "Left only"
      },
      {
        "value": "RightOnly",
        "displayName": "Right only"
      },
      {
        "value": "TopBottom",
        "displayName": "Top + bottom"
      },
      {
        "value": "LeftRight",
        "displayName": "Left + right"
      },
      {
        "value": "Frame",
        "displayName": "Frame"
      }
    ]
    },
    "status": {
    "direction": [
      {
        "value": "Positive",
        "displayName": "High is good"
      },
      {
        "value": "Negative",
        "displayName": "Low is good"
      }
     ]
   }
}