レポート テーマを適用する

Power BI レポート テーマ、レポート全体にデザインの変更を適用できます。 たとえば、会社の色を含め、アイコン セットを変更できます。 レポート テーマを適用すると、レポート内のすべてのビジュアルで、選択したテーマの色と書式設定が既定値として使用されます。 テーマの設定とその設計方法の詳細については、「レポート テーマの JSON ファイル形式 を参照してください。

テーマが適用されたレポートを保存して発行できます。 適用されたテーマは、Power BI Service または Power BI 埋め込み分析に読み込まれるときに、このレポートの既定のテーマです。

Power BI 埋め込み分析を使用する開発者は、レポートの既定のテーマではなく、カスタム テーマが適用されたレポートを埋め込むこともできます。 この方法でテーマを適用すると、設定に応じて、異なるテーマを持つ同じレポートが異なるユーザーに読み込まれます。

レポート テーマ オブジェクト

このセクションでは、テーマを表すために使用されるレポート テーマ オブジェクトについて説明します。 IReportTheme オブジェクト型は、埋め込み構成に渡すことができます。

interface IEmbedConfiguration extends IEmbedConfigurationBase {
  ...
  theme?: models.IReportTheme;
}

レポート テーマ オブジェクトには、themeJsonという名前のパラメーターが 1 つ必要です。 このフィールドには、テーマの設定を表す JSON オブジェクトが含まれている必要があります。 詳細については、レポート テーマの JSON ファイル形式 ページを参照してください。

interface IReportTheme {}
interface ICustomTheme extends IReportTheme {
  themeJson: any;
}

レポートにテーマを適用する

適用されたテーマは、レポートの読み込み後に変更することもできます。 レポートの読み込み後にテーマを適用すると、エンド ユーザーはリストからテーマを選択し、再読み込みせずにすぐにレポートに適用されたスタイルの変更を確認できます。

読み込み時にテーマを適用する

この例は、レポートの読み込み時にカスタム テーマを適用する場合に便利です。

// Parse the theme JSON file into an object
let themeJsonObject = parseJsonfile(path);
let embedConfig = {
    …
    theme: {
        themeJson: themeJsonObject
    }
};

let report = powerbi.embed(embedContainer, embedConfig);

実行時にテーマを適用する

apply メソッドは、レポートを再読み込みせずにレポートを読み込んだ後にテーマを変更する場合に便利です。

Power BI Client Report クラスは、applyTheme メソッドを次のように定義します。

applyTheme(theme: models.IReportTheme): Promise<void>

applyTheme API は、実行時にレポートに適用されるテーマを変更します。

...
// Parse the theme JSON file into an object
let themeJsonObject = parseJsonfile(path); 

// Apply the theme
report.applyTheme({ themeJson: themeJsonObject });

レポートの作成時にテーマを適用する

新しい埋め込みレポートは、テーマを適用して作成できます。 レポートに追加された新しいビジュアルは、テーマのスタイルを尊重します。 埋め込みレポート ページの作成、編集、保存の も参照してください。

この例は、新しいレポートにカスタム テーマを適用する場合に便利です。

// Parse the theme JSON file into an object
let themeJsonObject  = parseJsonfile(path);
let embedCreateConfiguration = {
  …
  theme: {
    themeJson: themeJsonObject 
  }
};

let report = powerbi.createReport(embedContainer, embedCreateConfiguration);

手記

parseJsonfile は、アプリケーション コードに実装する必要があり、SDK の一部ではない関数です。

レポート テーマをリセットする

reset メソッドは、レポート テーマを既定のテーマにリセットするが、テーマ JSON ファイルがない場合に便利です。

Power BI Client Report クラス は、resetTheme メソッドを次のように定義します。

resetTheme(): Promise<void>

resetTheme API を呼び出すと、レポートの既定のテーマに戻ります。

// Apply the theme
report.resetTheme();

考慮事項と制限事項

  • 上記の applyTheme API を使用すると、既定のテーマが新しい JSON ファイルで完全にオーバーライドされます。 API では、既定のテーマの構成は拡張されません。
  • テーマを適用しても、期待しているようなレポートのビジュアルが変更されない場合があります。 詳細については、「レポート テーマの色がレポートに適用されない場合の 状況」を参照してください。
  • API を使用してテーマを適用し、コントラスト レベルを同時に設定することはできません。 両方のプロパティを構成すると、API は指定したコントラスト レベルを使用しますが、テーマの設定は無視します。