Поделиться через


Применение тем отчета

Темы отчетов Power BI позволяют применять изменения дизайна ко всему отчету. Например, можно включить корпоративные цвета и изменить наборы значков. При применении темы отчета все визуальные элементы в отчете используют цвета и форматирование выбранной темы в качестве значений по умолчанию. Дополнительные сведения о параметрах темы и способах их создания см. в формате JSON-файла отчета.

Вы можете сохранить и опубликовать отчет с темой, примененной к ней. Примененная тема — это тема по умолчанию для этого отчета при загрузке в службе Power BI или встроенной аналитике Power BI.

Разработчики, использующие встроенную аналитику Power BI, также могут внедрять отчет с настраиваемой темой, применяемой вместо темы по умолчанию для отчета. Применение темы таким образом загружает один и тот же отчет с различными темами для разных пользователей в соответствии с их параметрами.

Объект темы отчета

В этом разделе описывается объект темы отчета, используемый для представления тем. Тип объекта IReportTheme можно передать в внедренную конфигурацию.

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

Объект темы отчета должен иметь один параметр с именем themeJson. Это поле должно содержать объект 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);

Применение темы во время выполнения

Метод применения полезен, если вы хотите изменить тему после загрузки отчета без перезагрузки отчета.

Класс отчетов клиента Power BI определяет метод следующим образом:

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

API applyTheme изменяет тему, которая применяется к отчету во время выполнения.

...
// 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.

Сброс темы отчета

Метод сброса полезен, если вы хотите сбросить тему отчета на тему по умолчанию, но у вас нет JSON-файла темы.

Класс отчетов клиента Power BI определяет метод следующим образом:

resetTheme(): Promise<void>

Вызов API resetTheme возвращает тему отчета по умолчанию.

// Apply the theme
report.resetTheme();

Рекомендации и ограничения

  • Используя описанный выше API applyTheme, полностью переопределяет тему по умолчанию новым JSON-файлом. API не расширяет конфигурацию темы по умолчанию.
  • Существует несколько раз, когда применение тем не изменяет визуальные элементы в отчете, как ожидается. Дополнительные сведения см. в статье Ситуации, когда цвета темы отчета не соответствуютотчетам.
  • Api нельзя использовать для применения темы и одновременного задания уровня контрастности. При настройке обоих свойств API использует заданный уровень контрастности, но игнорирует параметр темы.