Sdílet prostřednictvím


Použití motivů sestav

Motivy sestav Power BI umožňují použít změny návrhu na celou sestavu. Můžete například zahrnout firemní barvy a změnit sady ikon. Při použití motivu sestavy budou všechny vizuály v sestavě používat barvy a formátování z vybraného motivu jako své výchozí hodnoty. Další informace o nastavení motivu a jejich návrhu najdete v tématu Formát souboru JSON motivu sestavy.

Sestavu můžete uložit a publikovat s motivem, který se na ni použije. Použitý motiv je výchozím motivem pro tuto sestavu, když se načte ve službě Power BI nebo ve vložených analytických možnostech Power BI.

Vývojáři, kteří používají vložené analýzy Power BI, mají také možnost vložit sestavu s vlastním motivem místo výchozího motivu sestavy. Použití motivu tímto způsobem načte stejnou sestavu s různými motivy různým uživatelům podle jejich nastavení.

Objekt motivu sestavy

Tato část popisuje objekt motivu sestavy, který se používá k reprezentaci motivů. Do IReportTheme vložené konfigurace lze předat typ objektu.

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

Objekt motivu sestavy by měl mít jeden parametr s názvem themeJson. Toto pole by mělo obsahovat objekt JSON, který představuje nastavení motivu. Další informace najdete na stránce Formát souboru JSON s motivem sestavy .

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

Použití motivu u sestavy

Použitý motiv je také možné změnit po načtení sestavy. Když použijete motiv po načtení sestavy, může koncový uživatel vybrat motiv ze seznamu a okamžitě zobrazit změny stylu použité u sestavy bez opětovného načtení.

Použití motivu při načítání

Tento příklad je užitečný, pokud chcete při načítání sestavy použít vlastní motiv.

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

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

Použití motivu za běhu

Metoda apply je užitečná, pokud chcete změnit motiv po načtení sestavy bez opětovného načtení sestavy.

Třída Sestava klienta Power BI definuje metodu applyTheme jako:

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

Rozhraní applyTheme API změní motiv, který se použije na sestavu za běhu.

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

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

Použití motivu při vytváření sestavy

Je možné vytvořit novou vloženou sestavu s motivem, který se na ni použije. Nové vizuály přidané do sestavy respektují styl motivu. Podívejte se také na stránku Vytvoření, úprava a uložení vložené sestavy .

Tento příklad je užitečný, pokud chcete u nové sestavy použít vlastní motiv.

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

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

Poznámka

parseJsonfile je funkce, která se musí implementovat v kódu aplikace a není součástí sady SDK.

Resetování motivu sestavy

Metoda resetování je užitečná, pokud chcete obnovit motiv sestavy na výchozí motiv, ale nemáte soubor JSON motivu.

Třída Sestava klienta Power BI definuje metodu resetTheme jako:

resetTheme(): Promise<void>

Volání rozhraní resetTheme API se vrátí k výchozímu motivu sestavy.

// Apply the theme
report.resetTheme();

Omezení a důležité informace

  • Použití výše popsaného applyTheme rozhraní API zcela přepíše výchozí motiv novým souborem JSON. Rozhraní API nerozšiřuje konfiguraci výchozího motivu.
  • Při použití motivů se několikrát nezmění vizuály v sestavě, jak jste očekávali. Další informace najdete v tématu Situace, kdy se barvy motivu sestavy nelepí na sestavách.
  • Pomocí rozhraní API nemůžete použít motiv a současně nastavit úroveň kontrastu. Pokud nakonfigurujete obě vlastnosti, rozhraní API použije zadanou úroveň kontrastu, ale ignoruje nastavení motivu.