过滤器在 PowerBI React 应用程序中不起作用。
报告加载/渲染良好。
但是,添加到 basicFilter 的列 (name) 在视觉上显示并带有警告。
而且它不过滤。
无论我在过滤器中为table和column输入什么值,它都有相同的结果。
PowerBI 报告的数据源是 Azure 增量表。
尝试了各种名称,但似乎没有选择name和column。
尝试添加 updateFilter 但无济于事。
(window as any).report.updateFilters(models.FiltersOperations.Add, [basicFilter]);
有什么建议吗?
const basicFilter: IBasicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "people",
column: "name"
},
operator: "In",
values: ["paul", "mike"],
filterType: 1 // pbi.models.FilterType.BasicFilter
}
return (<div className="neo-widget__content">
<div className="neo-widget__header">
<div className="neo-widget__header-left">
<span className="neo-icon-agents"></span>
<h4>Power BI Report</h4>
</div>
</div>
<div className="neo-widget__body">
<div className="container">
<h3><b>People</b></h3>
<PowerBIEmbed
embedConfig={{
type: 'report',
id: reportId,
embedUrl: ebdUrl,
accessToken: tkn,
tokenType: models.TokenType.Embed,
filters: [basicFilter],
settings: {
panes: {
filters: {
expanded: false,
visible: true
}
},
}
}}
eventHandlers={
new Map([
['loaded', async function () {
console.log('Report loaded');
}],
['rendered', function () { console.log('Report rendered'); }],
['error', function (event) { console.log(event.detail); }],
['visualClicked', () => console.log('visual clicked')],
['pageChanged', (event) => console.log(event)],
])
}
cssClassName={"Embed-container"}
getEmbeddedComponent={(embeddedReport) => {
(window as any).report = embeddedReport;
}}
/>
</div>
</div>
</div>
);
花了一段时间才弄清楚。
结果过滤器 obj 中的 table 值不正确。
我将其设置为 people 但它应该包括 Azure 目录名称、数据库名称和表名称。
"`<catalog-name> <database-name> <table-name>`"
注意:语法中有反引号和空格。
所以就我而言。
const basicFilter: IBasicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "`gary_catalog default people`",
column: "name"
},
operator: "In",
values: ["paul", "mike"],
filterType: 1 // pbi.models.FilterType.BasicFilter
}