【问题标题】:Is there a way to filter out "Hidden" Pages from a Report when using the Power REST API - Get Pages in Group使用 Power REST API 时,有没有办法从报告中过滤掉“隐藏”页面 - 获取组中的页面
【发布时间】:2021-05-13 14:15:30
【问题描述】:

我正在尝试在 Angular 应用程序中构建一个组件以嵌入报告。

使用的技术:

  • 角度 8
  • ngx-powerbi npm 包
  • PowerBI REST API
  • PowerBI Pro 帐户

我们调用 Get Pages in Group 端点,位于此处: https://docs.microsoft.com/en-us/rest/api/power-bi/reports/getpagesingroup

  • 我们的配置设置中有工作区或组 ID
  • 我们调用 Get Reports in Group(通过此工作区)。这将用于填充 FE 中的报告下拉列表。
  • 对于选择的每个报告,我们调用 Get Pages in Group 并传入相同的工作区 ID 和报告 ID。这些页面将显示为选项卡式视图材料组件(而不是使用报表上的默认页面选择器)

发生的情况是 app.powerbi.com 工作区的报告中有“隐藏”页面。当检索到报告的页面时,它会将所有页面带回,即使是那些隐藏的页面。

这些页面是旧页面或 WIP 页面,不应被最终用户看到。

上面链接的 PowerBI REST API 端点中是否有任何过滤器?

我现在只能看到以下解决方案:

  • 返回使用报告中内置的默认页面/部分选项卡(用户不喜欢这样)
  • 在“隐藏”页面名称前加上“WIP -”之类的前缀,我们可以在代码中过滤掉它们。我觉得有点脏。

希望有人可以提供帮助。 :) 如果需要,很乐意添加更多信息。

【问题讨论】:

    标签: angular powerbi powerbi-embedded


    【解决方案1】:

    您可以使用报告页面的可见性属性,然后相应地过滤页面。

    标记为隐藏的页面的可见性属性设置为 1。

    请参考下面的代码sn-p:

    async function showPages() {
      // Use getPages API to get the list of pages
      pages = await report.getPages();
    
      for (let i=0; i < pages.length; i++) {
    
        // Check visibility property of the page object
        if (pages[i].visibility) {
          continue;
        }
          // Append page name to the dropdown
          $('#selectBox').append($('<option />').text(pages[i].displayName))
      }
    }
    

    现在,隐藏页面不会显示在下拉列表中。

    也可以参考https://docs.microsoft.com/en-us/javascript/api/powerbi/powerbi-client/page.page#visibility

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      相关资源
      最近更新 更多