Přizpůsobení rozložení sestavy
Pomocí vlastního rozložení sestavy můžete vložit sestavu Power BI s jiným rozložením, než které bylo uloženo v původní sestavě. Když definujete vlastní rozložení sestavy, můžete změnit velikost stránky sestavy a řídit velikost, umístění a viditelnost vizuálů na stránce.
Přehled vlastního rozložení
Pokud chcete vytvořit vlastní rozložení sestavy, definujte objekt vlastního rozložení a předejte ho objektu nastavení v konfiguraci vložení.
V objektu nastavení nastavte layoutType
na models.LayoutType.Custom
a nastavte customLayout
na objekt vlastního rozložení:
let embedConfig = {
...
settings: {
layoutType: models.LayoutType.Custom
customLayout: {...}
}
};
Další informace o nastavení sestavy najdete v tématu Konfigurace nastavení sestavy.
Definování vlastního rozložení sestavy
Každé vlastní rozložení sestavy je reprezentováno objektem vlastního rozložení, který definujete pro určení velikosti stránky, měřítka plátna a rozložení stránek. V rozložení stránek můžete určit rozložení vizuálu pro každý vizuál a výchozí rozložení vizuálu pro sestavu.
Definice vlastního rozhraní rozložení
K definování vlastního objektu rozložení použijte rozhraní ICustomLayout
:
interface ICustomLayout {
pageSize?: IPageSize;
displayOption?: DisplayOption;
pagesLayout?: PagesLayout;
}
Rozhraní ICustomLayout má následující vlastnosti:
pageSize
– objektIPageSize
, který definuje velikost stránky oblasti plátna pro sestavu.interface IPageSize { type: PageSizeType; }
Objekt
IPageSize
pomocí výčtuPageSizeType
nastaví velikost stránky:enum PageSizeType { Widescreen, Standard, Cortana, Letter, Custom }
displayOption
– výčetDisplayOption
, který určuje, jak škálovat plátno tak, aby se vešly do rámečku.enum DisplayOption { FitToPage, FitToWidth, ActualSize }
pagesLayout
– objektPagesLayout
, který řídí rozložení jednotlivých vizuálů na stránce. Tato vlastnost mapuje název stránky na objektPageLayout
. Další informace najdete v tématu Definování rozložení stránek.type PagesLayout = { [key: string]: IPageLayout; }
Definování rozložení stránek
K definování objektu rozložení stránek použijte rozhraní IPageLayout
. Rozhraní umožňuje definovat mapu rozložení vizuálu, která mapuje názvy jednotlivých vizuálů na nový objekt rozložení a výchozí rozložení vizuálu. Definování rozložení stránek je volitelné. Pokud pro sestavu nezadáte rozložení, Použije Power BI výchozí rozložení pro sestavu. To znamená, že výchozí rozložení platí pro všechny vizuály, které v objektu rozložení vizuálů nezadáte. Můžete například zpočátku skrýt všechny vizuály v sestavě a pak zobrazit vybrané vizuály v rozložení podle vašeho výběru.
interface IPageLayout {
defaultLayout: IVisualLayout,
visualsLayout: { [key: string]: IVisualLayout; };
}
Rozhraní IPageLayout má následující vlastnosti:
defaultLayout
– objektIVisualLayout
, který definuje výchozí rozložení vizuálu. Výchozí rozložení se automaticky použije u všech vizuálů na stránce sestavy.defaultLayout?: IVisualLayout
visualsLayout
– objektVisualsLayout
, který definuje mapu mezi názvy vizuálů a rozloženími vizuálů na stránce sestavy.visualsLayout: VisualsLayout
VisualsLayout = { [key: string]: IVisualLayout; }
Definování rozložení vizuálu
Pokud chcete definovat rozložení vizuálu, použijte rozhraní IVisualLayout
k vytvoření objektu rozložení vizuálu a nastavení jeho umístění, velikosti a viditelnosti.
interface IVisualLayout {
x?: number;
y?: number;
z?: number;
width?: number;
height?: number;
displayState?: IVisualContainerDisplayState;
}
Rozhraní IVisualLayout má následující vlastnosti:
x
,y
,z
– definuje souřadnice vizuálu x, y a z.width
,height
– definuje šířku a výšku vizuálu.displayState
– objektIVisualContainerDisplayState
, který definuje viditelnost vizuálu.interface IVisualContainerDisplayState { mode: VisualContainerDisplayMode; }
Objekt
IVisualContainerDisplayState
používá k nastavení viditelnosti výčetVisualContainerDisplayMode
:enum VisualContainerDisplayMode { Visible, Hidden }
Aktualizace rozložení
Chcete-li aktualizovat rozložení sestavy při již načtené sestavě, použijte metodu report.updateSettings
. Další informace najdete v tématu Aktualizace nastavení sestavy za běhu.
Příklad
Tento úplný příklad kódu ukazuje, jak vložit sestavu s vlastním rozložením sestavy. Všechny vizuály jsou skryté kromě dvou vizuálů: VisualContainer1 a VisualContainer2. visualContainer1 má nové rozložení, umístění a velikost, zatímco VisualContainer2 je viditelné s výchozím rozložením sestavy.
// Get models. Models contains enums that can be used.
let models = window['powerbi-client'].models;
let embedConfig = {
type: 'report',
id: reportId,
embedUrl: 'https://app.powerbi.com/reportEmbed',
tokenType: models.TokenType.Embed,
accessToken: 'H4...rf',
settings: {
layoutType: models.LayoutType.Custom
customLayout: {
pageSize: {
type: models.PageSizeType.Custom,
width: 1600,
height: 1200
},
displayOption: models.DisplayOption.ActualSize,
pagesLayout: {
"ReportSection1" : {
defaultLayout: {
displayState: {
mode: models.VisualContainerDisplayMode.Hidden
}
},
visualsLayout: {
"VisualContainer1": {
x: 1,
y: 1,
z: 1,
width: 400,
height: 300,
displayState: {
mode: models.VisualContainerDisplayMode.Visible
}
},
"VisualContainer2": {
displayState: {
mode: models.VisualContainerDisplayMode.Visible
}
},
}
}
}
}
}
};
...
// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, embedConfig);