Персонализация макета отчета
С помощью пользовательского макета отчета можно внедрить отчет Power BI с другим макетом, отличным от того, что было сохранено в исходном отчете. При определении пользовательского макета отчета можно изменить размер страницы отчета и управлять размером, положением и видимостью визуальных элементов на странице.
Обзор пользовательского макета
Чтобы создать пользовательский макет отчета, определите объект пользовательского макета и передайте его в объект параметров в конфигурации внедрения.
В объекте settings задайте для layoutType
значение models.LayoutType.Custom
и задайте customLayout
для пользовательского объекта макета:
let embedConfig = {
...
settings: {
layoutType: models.LayoutType.Custom
customLayout: {...}
}
};
Дополнительные сведения о параметрах отчета см. в разделе Настройка параметров отчета.
Определение пользовательского макета отчета
Каждый пользовательский макет отчета представлен пользовательским объектом макета, который определяется для указания размера страницы, масштаба холста и макета страниц. В макете страниц можно указать визуальный макет для каждого визуального элемента и визуального макета по умолчанию для отчета.
Определение пользовательского интерфейса макета
Используйте интерфейс ICustomLayout
для определения пользовательского объекта макета:
interface ICustomLayout {
pageSize?: IPageSize;
displayOption?: DisplayOption;
pagesLayout?: PagesLayout;
}
Интерфейс ICustomLayout имеет следующие свойства:
pageSize
— объектIPageSize
, определяющий размер страницы области холста для отчета.interface IPageSize { type: PageSizeType; }
Объект
IPageSize
использует перечислениеPageSizeType
для задания размера страницы:enum PageSizeType { Widescreen, Standard, Cortana, Letter, Custom }
displayOption
— перечислениеDisplayOption
, определяющее, как масштабировать холст для размещения в кадре.enum DisplayOption { FitToPage, FitToWidth, ActualSize }
pagesLayout
— объектPagesLayout
, который управляет макетом для каждого визуального элемента на странице. Это свойство сопоставляет имя страницы с объектомPageLayout
. Дополнительные сведения см. в разделе Определение макета страниц.type PagesLayout = { [key: string]: IPageLayout; }
Определение макета страниц
Используйте интерфейс IPageLayout
для определения объекта макета страниц. Интерфейс позволяет определить карту визуального макета, которая сопоставляет каждое визуальное имя с новым объектом макета и визуальным макетом по умолчанию. Определение макета страниц является необязательным. Если вы не предоставляете макет отчета, Power BI применяет макет по умолчанию к отчету. То есть макет по умолчанию применяется ко всем визуальным элементам, которые не указываются в объекте макета визуальных элементов. Например, сначала можно скрыть все визуальные элементы в отчете, а затем отобразить выбранные визуальные элементы в выбранном макете.
interface IPageLayout {
defaultLayout: IVisualLayout,
visualsLayout: { [key: string]: IVisualLayout; };
}
Интерфейс IPageLayout имеет следующие свойства:
defaultLayout
— объектIVisualLayout
, определяющий визуальный макет по умолчанию. Макет по умолчанию автоматически применяется ко всем визуальным элементам на странице отчета.defaultLayout?: IVisualLayout
visualsLayout
— объектVisualsLayout
, определяющий карту между визуальными именами и визуальными макетами на странице отчета.visualsLayout: VisualsLayout
VisualsLayout = { [key: string]: IVisualLayout; }
Определение визуального макета
Чтобы определить визуальный макет, используйте интерфейс IVisualLayout
для создания объекта визуального макета и задания его положения, размера и видимости.
interface IVisualLayout {
x?: number;
y?: number;
z?: number;
width?: number;
height?: number;
displayState?: IVisualContainerDisplayState;
}
Интерфейс IVisualLayout имеет следующие свойства:
x
,y
,z
— определяет координаты x, y и z визуального элемента.width
,height
— определяет ширину и высоту визуального элемента.displayState
— объектIVisualContainerDisplayState
, определяющий видимость визуального элемента.interface IVisualContainerDisplayState { mode: VisualContainerDisplayMode; }
Объект
IVisualContainerDisplayState
использует перечислениеVisualContainerDisplayMode
для задания видимости:enum VisualContainerDisplayMode { Visible, Hidden }
Обновление макета
Чтобы обновить макет отчета при загрузке отчета, используйте метод report.updateSettings
. Дополнительные сведения см. в разделе Обновление параметров отчета во время выполнения.
Пример
В этом полном примере кода показано, как внедрить отчет с пользовательским макетом отчета. Все визуальные элементы скрыты, за исключением двух визуальных элементов: VisualContainer1 и VisualContainer2. VisualContainer1 имеет новый макет, позицию и размер, а VisualContainer2 отображается с макетом отчета по умолчанию.
// 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);