首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerBI JS SDK - setFilters()从筛选器面板中删除第一个筛选器之外的所有筛选器

PowerBI JS SDK - setFilters()从筛选器面板中删除第一个筛选器之外的所有筛选器
EN

Stack Overflow用户
提问于 2021-08-02 15:08:04
回答 1查看 77关注 0票数 1

最近注意到,使用setFilters()设置PowerBI Embedded的筛选器会从筛选器面板中删除除第一个筛选器之外的所有滤镜。但是,当使用getFilters()时,所有其他过滤器仍然会被返回。在几个不同的环境中进行了测试。可能是什么地方出了问题,或者是微软的一些更新?

report.getFilters().then(r => console.log(r))产生:

代码语言:javascript
运行
复制
[
  {
    "$schema": "http://powerbi.com/product/schema#basic",
    "target": {
        "table": "Regions",
        "column": "Region"
    },
    "filterType": 1,
    "displaySettings": {
        "isLockedInViewMode": false,
        "isHiddenInViewMode": false
    },
    "operator": "All",
    "values": [],
    "requireSingleSelection": false
},
{
    "$schema": "http://powerbi.com/product/schema#basic",
    "target": {
        "table": "Hydrocarbon",
        "column": "Hydrocarbon"
    },
    "filterType": 1,
    "operator": "All",
    "values": [],
    "requireSingleSelection": true
  }
]

然而,从视觉上看,滤镜面板中只有“区域”滤镜。

运行以下命令:

代码语言:javascript
运行
复制
report.setFilters([
{
    "$schema": "http://powerbi.com/product/schema#basic",
    "target": {
        "table": "Hydrocarbon",
        "column": "Hydrocarbon"
    },
    "filterType": 1,
    "operator": "All",
    "values": [],
    "requireSingleSelection": true
},
{
    "$schema": "http://powerbi.com/product/schema#basic",
    "target": {
        "table": "Regions",
        "column": "Region"
    },
    "filterType": 1,
    "displaySettings": {
        "isLockedInViewMode": false,
        "isHiddenInViewMode": false
    },
    "operator": "All",
    "values": [],
    "requireSingleSelection": false
}])

不产生错误,将“碳氢化合物”放在过滤器面板的第一位,隐藏过滤器面板中的“区域”。

然后,report.getFilters().then(r => console.log(r))生成:

代码语言:javascript
运行
复制
[
    {
        "$schema": "http://powerbi.com/product/schema#basic",
        "target": {
            "table": "Hydrocarbon",
            "column": "Hydrocarbon"
        },
        "filterType": 1,
        "operator": "All",
        "values": [],
        "requireSingleSelection": true
    },
    {
        "$schema": "http://powerbi.com/product/schema#basic",
        "target": {
            "table": "Regions",
            "column": "Region"
        },
        "filterType": 1,
        "displaySettings": {
            "isLockedInViewMode": false,
            "isHiddenInViewMode": false
        },
        "operator": "All",
        "values": [],
        "requireSingleSelection": false
    }
]

我已经尝试将整个项目代码还原到几个月前。尝试将微软PowerBI JS SDK 2.18.0 -> 2.8.1降级,但仍然是一样的。

所以我猜是微软的一些“更新”(我找不到任何关于它的提及),或者问题仍然在我们这边--我们的一些报告设置…

report.updateFilters(models.FiltersOperations.Add, filters);的作用是一样的--视觉上只从滤镜数组中追加第一个滤镜,然而调用getFilters()产生的滤镜是最初的两倍……

手动折叠/展开滤镜面板(在setFilters/updateFilters之后)有助于取消隐藏消失的滤镜。

我会玩更多,看看这是否与filterPaneEnabled设置有关……

EN

回答 1

Stack Overflow用户

发布于 2021-09-01 19:44:45

作为一个快速解决方案,我为循环中的每个过滤器调用updateFilters()。它适用于报告级别的筛选器。

代码语言:javascript
运行
复制
async function addFilters(obj_to_apply, filters) {
    for (let i = 0; i < filters.length; i++) {
        await obj_to_apply.updateFilters(models.FiltersOperations.Add, [filters[i]]);
    }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68623939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档