无法设置某些类型的Power BI筛选器(在视觉上)

问题描述 投票:1回答:1

使用PowerBI-JavaScript库在视觉上设置滤镜时,我面临以下问题:

例如,当使用setFilters功能(在视觉对象上)时,我无法在视觉上设置以下类型的筛选器:高级(filterType:0)和TopN(filterType:5):

const myAdvancedFilter = {
  $schema: 'http://powerbi.com/product/schema#advanced',
  target: {
    table: 'MyDataTable',
    measure: 'TimeDifference'
  },
  filterType: 0,
  logicalOperator: 'And',
  conditions: [
    {
      operator: 'GreaterThanOrEqual',
      value: 0
    },
    {
      operator: 'LessThanOrEqual',
      value: 12
    }
  ]
}

myVisual.setFilters([myAdvancedFilter])
  .catch(errors => {
    console.log(errors) // An error occurs
  });

这是我收到的错误:

Power BI error

以下内容也不起作用:

 reportPage.getVisuals().then(visuals => {
   let firstVisual = visuals[0]; // Note: The report only contains one visual
     firstVisual.getFilters().then(visualFilters => {
       // The visualFilters array contains advanced/topN filters (note: the visual has the advanced filters applied when it is initially embedded; before I attempt to set filters)
       firstVisual.setFilters(visualFilters).catch(errors => {
         // If I attempt to set the 'visualFilters' to the visual I get the error depicted in the above screenshot. This issue shouldn't occur because the report already has these filters applied
       });
     })
 })

setFilters()函数似乎将PUT请求(/ report / pages / {PageName} visuals / {Visual} / filters)发送到嵌入式报告(在iframe中),并通过请求正文中的过滤器。响应返回“ InvalidFilter”错误。

注意:我可以设置基本过滤器,例如没有任何错误的列上的值。例如:

const basicFilter = {
  $schema: 'http://powerbi.com/product/schema#advanced',
  filterType: 1,
  operator: 'In',
  target: {
    table: 'MyDataTable',
    column: 'Zone'
  },
  values: ['MyZone']
}

myVisual.setFilters([basicFilter])
  .catch(errors => {
    console.log(errors) // No error occurs
  });

我能够通过过滤器窗格设置所有过滤器(基本,高级和topN,我只是无法通过PowerBI-JavaScript库以编程方式设置它们。

我该如何解决这个问题?

javascript powerbi powerbi-embedded
1个回答
1
投票

语法和实现看起来正确无误,正如我从头开始验证并根据constructing filters的文档所述。如果提供的表或列名称引用不正确,则会引发此类错误。

可能是过滤器定义中的一个或多个引用实体(表,列)在报表中不再可用,或者名称不正确。在这种情况下,在以下情况下将引发“无效的过滤器定义”错误:设置过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.