以前に作成したレポートについてはテーマを変更とかしない限り特段の問題はないはずだけれども、いろいろ確認する機会があったので整理しておこうかと。
- テーマ の定義は pbix ファイルに少なくともひとつ埋め込まれている
- テーマを差し替えることでビジュアルの設定を変更することができる
- ただし、設定できるのは "既定値"
- ビジュアルごとの設定値を変更していないとき、テーマによる値(既定値)が利用される
テーマ の仕組み
テーマで定義されるものは既定値の一式であり、カラーパレットやレポートの背景など様々な要素属性を含めることが可能。
たとえば、ビジュアルをレポート上に配置したとき、フォントサイズを変えたりすることはあるでしょう。この時の変更とは "テーマによる既定値を継承しないための変更" と考えておけばよいかと思うのです。実際そんな感じに動作しますし、ビジュアルごとの設定とテーマは別の管理がされているので、ささっとテーマの差し替えができるわけで。
順を追って
- 優先されるのは ビジュアルごとの設定
- 設定されていない、つまり既定値であるときはテーマ
ページにビジュアルを配置したとき、
(フィールドなど設定が必要だけれども)プロパティペインのカードに表示されている値は テーマで定義された既定値。他にあるとすればアプリケーションによる既定値といったところでしょう。ビジュアルの配置位置や設定などは Layout に json で保存されているので確認するのは簡単。
.pbix\Report\Layout
ここではプロパティの値を変更していないから、Layout には配置位置など必要な値以外を保存していないことがわかる。Layout 内の該当ビジュアルのプロパティ、例えば フォントサイズが見当たらない。では、テーマによる既定値を採用って感じ。
たとえば、フォントサイズを変更したとき、
変更したフォントサイズは、Layout に該当するビジュアルの情報として保存される。フォントサイズがLayout で確認できるのでこれが採用される。
このあとテーマを差し替えたら、
差し替えるテーマにフォントサイズを指定されていたとしても、ビジュアルごとの設定、Layout にあるフォントサイズが採用される。
テーマを適用させたいとき、
ビジュアルのプロパティで適用させたい分は既定値に戻せばよい。
インポートしたカスタム テーマ
Power BI Desktop が用意し利用されるテーマは ベーステーマっていう扱い。
.pbix\Report\StaticResources\SharedResources\BaseThemes\CY******.json
これ以外にカスタム テーマをインポートできる。このとき、
- 優先されるのは ビジュアルごとの設定
- 設定されていないつまり既定値であるときはカスタムテーマ
- カスタム テーマに定義されていない要素はベーステーマ
Power BI Service で レポートを新規作成したとき
Power BI Desktop で作成した pbix ファイルをアップロードしたあと、Power BI Service 上でも新規のレポートを作成することはできる。ただし、テーマは継承されない。なぜか。Power BI Service 上では データセット(データ本体)とレポート(View)は分離して管理運用されるから。Power BI Desktop 同様にテーマのインポートができるようになればよいのだけど。
思ったこと🙄
ビジュアルの適用したすべての設定を既定値に戻すには、プロパティカードごとで ポチポチを"既定値に戻す" か、"書式のコピー/貼り付け"してしまえばよい。新たにビジュアル配置してこれを書式をコピーして貼り付ける感じに知れば、すべての書式は 既定値 になる。
おまけ
デモとかする機会が多いのだけど、フォントサイズとかしゅっと大きくしたいことが多いのでこんな感じのカスタムテーマを使っている。
{
"name": "My Theme",
"visualStyles": {
"*": {
"*": {
"*": [
{
"fontSize": 16
}
],
"items":[
{
"textSize": 16
}
],
"labels": [
{
"fontSize": 40
}
]
}
}
}
}
スキーマについては以下くらいかな。
Use Report Themes in Power BI Desktop - Power BI | Microsoft Docs