嵌入报表视觉对象

提示

请尝试在 power BI Embedded Analytics Playground的 浏览 API 部分中嵌入报表视觉对象或试验我们的客户端 API。

本文介绍在应用程序中嵌入视觉对象的步骤。 详细了解 Power BI视觉对象中的视觉对象。

如何嵌入视觉对象

在应用中嵌入 Power BI 内容时,使用配置对象定义要嵌入的内容并指定内容的设置。 然后将该对象传递给 API。

嵌入视觉对象时,请使用 IVisualLoadConfiguration类型的配置对象:

interface IVisualLoadConfiguration {
    accessToken?: string;
    embedUrl?: string;
    id?: string;
    pageName: string;
    tokenType?: models.TokenType;
    type: string;
    visualName: string;
}

此接口包括以下属性:

  • accessToken - 用于访问要嵌入的 Power BI 数据的令牌。 请参阅 了解不同的嵌入解决方案 了解有关访问令牌的详细信息。

  • embedUrl - 包含要嵌入的视觉对象的报表的 URL。 此 URL 将成为包含嵌入视觉对象的 HTML iframe 元素的源。 具体而言,API 将 URL 分配给 iframesrc 属性。 可以使用 报表 API 来获取此 URL。 两个示例包括:

  • id - Power BI 报表的 ID,其中包含要嵌入的视觉对象。

  • pageName - 包含要嵌入的视觉对象的页面的名称。 可以使用 Report getPages 方法获取报表中的页面。

  • tokenType - 用于访问要嵌入的 Power BI 数据的令牌类型。

    • 如果要为组织嵌入内容(用户拥有数据),请使用 models.TokenType.Aad
    • 如果要为客户嵌入内容(应用拥有数据),请使用 models.TokenType.Embed

    有关详细信息,请参阅 了解不同的嵌入解决方案

  • type - 要嵌入的内容类型。 对视觉对象使用 'visual'

  • visualName - 要嵌入的视觉对象的名称。 可以使用 Page getVisuals 方法获取页面中的视觉对象。

以下示例演示如何嵌入单个视觉对象:

// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
    accessToken: anAccessToken,
    embedUrl: anEmbedUrl,
    id: aReportId,
    pageName: aPageName,
    tokenType: aTokenType,
    type: 'visual',
    visualName: aVisualName
};
 
// Get a reference to the HTML element that contains the embedded report.
let embedContainer = $('#embedContainer')[0];
 
// Embed the visual.
let visual = powerbi.embed(embedContainer, embedConfiguration);

过滤 器

默认情况下,updateFilters API 将在嵌入单个报表视觉对象时应用视觉对象级别筛选器。 这可能会导致与嵌入配置对象中应用的筛选器发生冲突,因为这些筛选器在报表级别应用。 若要解决此问题,可以使用 API 设置筛选器级别:

await visual.updateFilters(FiltersOperations.Add, filters, FiltersLevel.Report);

详细了解 控制报表筛选器中的筛选器。