Power Bi嵌入过滤器设置出错

时间:2018-03-05 16:34:46

标签: angular powerbi powerbi-embedded

所以我根据这个模型在Power Bi中进行了嵌入工作

[https://community.powerbi.com/t5/Developer/Embedded-Report-add-filter-to-EmbedConfig/td-p/199739]

但是一旦我添加过滤器,事情就开始失败了。它在配置中包含设置时出错。我按照这篇文章中概述的模型进行了操作。这是它在Angular 4中抛出的错误和代码块。任何人都对这个问题有什么想法?

src / app / components / reporting / reporting.component.ts(73,49)中的错误:错误TS2345:类型的参数' {type:string; accessToken:string; embedUrl:string; id:string; filters:{$ schema:string; TA ...'不能分配给' IEmbedConfigurationBase |类型的参数未定义&#39 ;. 输入' {type:string; accessToken:string; embedUrl:string; id:string; filters:{$ schema:string; TA ...'不能分配给' IEmbedConfigurationBase'。 财产类型'设置'是不相容的。 输入' {filterPaneEnabled:boolean; navContentPaneEnabled:boolean; }'不能分配类型' ISettings |未定义&#39 ;. 输入' {filterPaneEnabled:boolean; navContentPaneEnabled:boolean; }'没有与类型' ISettings'相同的属性。

    let accessToken = 'XXX';

        let embedUrl = 'https://app.powerbi.com/dashboardEmbed?dashboardId=XXX';

        let embedReportId = 'XXX';

        const myFilter = {
            $schema: "http://powerbi.com/product/schema#advanced",
            target: {
                table: "myTable",
                column: "myColumn"
            },
            operator: "In",
            values: ["1"]
        };

        let config= {
            type: 'dashboard',
            accessToken: accessToken,
            embedUrl: embedUrl,
            id: embedReportId,
            filters: [myFilter],
            settings: {
                filterPaneEnabled: true,
                navContentPaneEnabled: false
            }
        };

        // Grab the reference to the div HTML element that will host the report.
        let reportContainer = document.getElementById('reportContainer');

        // Embed the report and display it within the div container.
        let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);
        let report = powerbi.embed(reportContainer, config);

2 个答案:

答案 0 :(得分:0)

我不知道这是否是导致此问题的原因,但它可能会导致一些问题 - 您正在混合2种方法。报表嵌入在其配置中支持过滤器(IReportLoadConfig)[https://github.com/Microsoft/powerbi-models/blob/1daad509c435a6f722222d753f1372c80763ad33/src/models.ts#L618],它使用您在myFilter中引用的界面...

但是,您正试图嵌入仪表板,根据您的配置类型(“仪表板”)&你的embedUrl(dashboardEmbed)。这可能是输入问题。

此外,我建议您使用Power BI JS SDK或(PowerBI-Models)[https://github.com/Microsoft/powerbi-models/]中提供的类型,以确保根据需要传递类型,使用Typescript类型 - 检查。

答案 1 :(得分:0)

我有同样的问题。只需替换本地设置,如下所示。

        settings: {
      localeSettings: {
        language: "en",
        formatLocale: "es"
      }
    }