Power BI 嵌入筛选器设置出错



所以我基于此模型在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 |未定义'。 键入 '{ type: string; accessToken: string; embedUrl: string; id: string; filters: { $schema: string; ta...'不能分配给类型"IEmbedConfigurationBase"。 属性"设置"的类型不兼容。 键入"{ filterPaneEnabled: boolean; navContentPaneEnabled: boolean; }" 不能分配给类型 'ISettings |未定义'。 类型 '{ filterPaneEnabled: boolean; navContentPaneEnabled: boolean; }' 与类型 'ISettings' 没有共同的属性。

让访问令牌 = 'XXX'; 让嵌入网址 = 'https://app.powerbi.com/dashboardEmbed?dashboardId=XXX'; let embedReportId = 'XXX'; 常量我的过滤器 = { $schema:"http://powerbi.com/product/schema#advanced", 目标:{ 表: "我的表", 专栏:"我的专栏" }, 运算符:"在", 值:["1"] }; let config= { 类型:"仪表板", accessToken: accessToken, embedUrl: embedUrl, id: embedReportId, 过滤器: [我的过滤器], 设置:{ filterPaneEnabled: true, 导航内容窗格已启用:假 } }; 获取对将承载报表的div HTML 元素的引用。 let reportContainer = document.getElementById('reportContainer'); 嵌入报表并将其显示在div 容器中。 let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory); let report = powerbi.embed(reportContainer, config);

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

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

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

但是,您正在尝试嵌入仪表板,从您的配置类型("仪表板")和嵌入URL(dashboardEmbed)来看。这可能是键入的问题。

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

最新更新