嵌入分页报表
提示
尝试嵌入分页报表,或在 Power BI Embedded Analytics Playground 的“浏览 API”部分中使用客户端 API 进行试验。
本文介绍在应用程序中嵌入分页报表的步骤。 若要详细了解分页报表,请参阅什么是Power BI Premium中的分页报表?。
如何嵌入分页报表
在应用中嵌入 Power BI 内容时,可以定义内容并在配置对象中指定其设置。 然后,将该对象传递给 API。
嵌入分页报表时,请使用 类型的 IPaginatedReportLoadConfiguration
配置对象:
export interface IPaginatedReportLoadConfiguration {
accessToken: string;
id: string;
embedUrl?: string;
settings?: IPaginatedReportSettings;
tokenType?: TokenType;
type?: string;
parameterValues?: IPaginatedReportParameter[];
}
此接口包含以下属性:
accessToken - 用于访问要嵌入的 Power BI 数据的令牌。 若要详细了解访问令牌 ,请参阅了解不同的嵌入解决方案 。
embedUrl - 要嵌入的报表的 URL。 此 URL 将成为包含嵌入报表的 HTML iframe 元素的源。 具体而言,API 将 URL
src
分配给 iframe 的 属性。 可以使用 报表 API 获取此 URL。 两个示例包括:建议使用
parameterValues
下面所述的 属性将报表参数传递给报表。 但是,也可以通过将查询字符串添加到嵌入 URL 的末尾,将参数传递给报表。 详细了解如何在 分页报表中传递 URL 参数。 请参阅将 参数传递到 URL 的示例。id - 要嵌入的 Power BI 报表的 ID。
hostname - 默认值为
hostname
app.powerbi.com。 如果使用的是主权云,请在此处提供 URL。 如果为embedURL
提供值,hostname
则将忽略 。settings - IPaginatedReportSettings 类型的配置对象。 此对象指定有关报表参数面板外观的信息。 参数面板是操作栏下方可展开或隐藏的条形图。
可以通过单击操作栏上的“ 参数” 按钮来显示或隐藏参数面板。 默认情况下,该按钮可用。 但是,如果将面板的
enabled
属性配置为false
,“ 参数” 按钮将不可用。默认情况下,API 折叠参数面板。 如果将面板的
expanded
属性设置为true
,API 将在展开此面板的情况下加载报表。此代码演示了配置 属性的
settings
一种方法:settings: { commands: { parameterPanel: { enabled: true, expanded: true } } }
tokenType - 用于访问要嵌入的 Power BI 数据的令牌类型。
- 如果要为组织嵌入 (用户拥有数据) ,请使用
models.TokenType.Aad
。 - 如果要为客户嵌入 (应用拥有数据) ,请使用
models.TokenType.Embed
。
有关详细信息 ,请参阅了解不同的嵌入解决方案 。
- 如果要为组织嵌入 (用户拥有数据) ,请使用
parameterValues – 类型的
IPaginatedReportParameter
配置对象。 使用此属性设置报表参数。 此方法使用 JavaScript SDK,是传递报表参数的首选方法。 例如:parameterValues: [ {name: "State", value: "WA"}, {name: "City", value: "Seattle"}, {name: "City", value: "Bellevue"}, {name: "City", value: "Redmond"} ]
此方法只能用于将报告参数 (具有 URL 前缀
rp:
) 的参数传递,而不是 (具有 URL 前缀rdl:
) 的 rdl 参数。
示例
以下示例演示如何嵌入分页报表:
// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
accessToken: anAccessToken,
embedUrl: anEmbedUrl,
uniqueId: aReportId,
tokenType: aTokenType,
type: 'report',
datasetBindings: [{
sourceDatasetId: "originalDatasetId",
targetDatasetId: "notOriginalDatasetId"
}]
};
// Get a reference to the HTML element that contains the embedded report.
let embedContainer = $('#embedContainer')[0];
// Embed the report.
let report = powerbi.embed(embedContainer, embedConfiguration);
请确保在 多资源嵌入令牌中包含用于绑定的所有 DatasetId。
注意事项和限制
- 若要使用动态绑定,请参阅 将数据集动态绑定到分页报表。
- 分页报表不支持启动方法。
- 嵌入分页报表时不支持多值参数。
- 属性
parameterValues
只能用于报表参数。 它不能用于 rdl 参数。 - 不支持使用实时数据集嵌入分页报表 (推送数据集) 。