嵌入分页报表

提示

尝试嵌入分页报表,或在 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 - 默认值为 hostnameapp.powerbi.com。 如果使用的是主权云,请在此处提供 URL。 如果为 embedURL提供值, hostname 则将忽略 。

  • settings - IPaginatedReportSettings 类型的配置对象。 此对象指定有关报表参数面板外观的信息。 参数面板是操作栏下方可展开或隐藏的条形图。

    显示嵌入式 Power BI 分页报表的屏幕截图。参数面板靠近顶部,以红色突出显示。

    • 可以通过单击操作栏上的“ 参数” 按钮来显示或隐藏参数面板。 默认情况下,该按钮可用。 但是,如果将面板的 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 参数。
  • 不支持使用实时数据集嵌入分页报表 (推送数据集) 。

后续步骤