【问题标题】:Embedded power bi visuals filters not updating嵌入式电源双视觉过滤器未更新
【发布时间】:2022-12-12 16:46:51
【问题描述】:

我正在尝试更新某些嵌入式视觉效果的过滤器,但它不起作用。 也尝试使用这个:await visual.updateFilters(FiltersOperations.Add, filters, FiltersLevel.Report); 但没有成功。使用FiltersOperations.AddFiltersLevel.Report 时出现无法找到它们的错误,因此尝试将它们更改为其枚举值,2 表示添加,0 表示报告。

let embedConfiguration = {
                    accessToken: "@ViewBag.Token",
                    embedUrl: "@ViewBag.EmbedUrl",
                    id: "@ViewBag.Id",
                    pageName: pageName,
                    tokenType: 1,
                    type: 'visual',
                    visualName: visualName
                };
                 
                // Get a reference to the HTML element that contains the embedded report.
                let embedContainer = $('#'+embedContainerName)[0];
                
                 
                
                const basicFilter = {
                                              $schema: "http://powerbi.com/product/schema#basic",
                                              target: {
                                                table: "Personskader",
                                                column: "Disiplin"
                                              },
                                              operator: "In",
                                              values: ["Insulation"],
                                              filterType: 1
                                            };
                // Embed the visual.
                let visual = powerbi.embed(embedContainer, embedConfiguration);
                await visual.updateFilters(2, basicFilter);
                }

【问题讨论】:

    标签: javascript powerbi powerbi-embedded


    【解决方案1】:

    问题在于类型。第二个参数将是 IFilter[] 类型。所以,将它传递到数组中,它就会起作用。

    当您使用FiltersOperations.Add 时,您需要导入powerbi-models,这就是您收到错误的原因。您可以指定models.FiltersOperations.Add,这有效。

    await visual.updateFilters(models.FiltersOperations.Add, [basicFilter]);

    您可以使用任何 Api 并在此处测试您自己的报告 https://playground.powerbi.com/en-us/dev-sandbox

    参考: https://learn.microsoft.com/javascript/api/overview/powerbi/control-report-filters

    【讨论】:

    • 我试过这个,但它仍然无法正常工作。浏览最新的答案代码时,您是否看到任何错误?我正在使用 powerbi-client v2.21.0。这还不够吗?谢谢
    【解决方案2】:

    似乎仍然无法让它发挥作用。你能看到代码中的任何错误吗?我已经更新了所有 nuget 包、CSS、JS 等,所以我迷路了……

    @section Scripts {
        <script src="/lib/powerbi-client/dist/powerbi.min.js"></script>
        <script>
        // Get models. models contains enums that can be used.
            models = window['powerbi-client'].models;
    
        
    async function embedVisual(pageName, visualName, embedContainerName) {
                        
                let embedConfiguration = {
                            accessToken: "@ViewBag.Token",
                            embedUrl: "@ViewBag.EmbedUrl",
                            id: "@ViewBag.Id",
                            pageName: pageName,
                            tokenType: 1,
                            type: 'visual',
                            visualName: visualName
                        };
                         
                        // Get a reference to the HTML element that contains the embedded report.
                        let embedContainer = $('#'+embedContainerName)[0];
                        
                         
                        
                        const basicFilter = {
                                                      $schema: "http://powerbi.com/product/schema#basic",
                                                      target: {
                                                        table: "Personskader",
                                                        column: "Disiplin"
                                                      },
                                                      operator: "In",
                                                      values: ["Insulation"],
                                                      filterType: models.FilterType.Basic
                                                    };
                        // Embed the visual.
                        let visual = powerbi.embed(embedContainer, embedConfiguration);
                        await visual.updateFilters(models.FiltersOperations.Add,[basicFilter]);
                        
                                            
            }
    embedVisual("ReportPageName", "VisualName", "embedContainer"); //Not real values
    </script>
    
    }
    

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2020-10-01
      相关资源
      最近更新 更多