我当前在嵌入 PBI 报告中进行过滤时遇到问题。我想知道是否有人知道如何解决它。
在我的报告中,我想实现一个如下所示的过滤器:高级过滤,您可以在两个日期之间进行选择,并使用运算符“在或之后”和“在或之前”。
如果我在表“Zorgactiviteit datum”和列“Datum”上实现此过滤器,它似乎不起作用。 Power BI Embedded 中的过滤器位于下面的代码中。
const filter = {
$schema: "http://powerbi.com/product/schema#advanced",
target: {
table: "Zorgactiviteit datum",
column: "Datum"
},
logicalOperator: "And",
conditions: [
{
operator: "IsOrAfter",
value: new Date().getDate() - 30
},
{
operator: "IsOnOrBefore",
value: new Date()
}
],
filterType: models.FilterType.AdvancedFilter
};
try {
await report.updateFilters(models.FiltersOperations.Add, [filter]);
console.log("Report filter was added.");
}
catch (errors) {
console.log(errors);
}
我已经做的是: 1:高级过滤器常见的不同运算符:LessThanOrEqual 或 GreaterThanOrEqual。
2:我在报告和页面上尝试了过滤器。
conditions
中使用的运算符不正确。请在此处查找支持的高级过滤条件操作。将条件运算符替换为您已经尝试过的 GreaterThanOrEqual
和 LessThanOrEqual
,它应该可以工作。
如果是日期过滤器或日期切片器,您能否提供更多信息?您提到您尝试过报告页面中的过滤器,但没有成功。假设它是日期切片器,我们需要该日期视觉的
setSlicerState
。请参阅此 RangeSlicer 文档。
请参阅下面的代码,我们在其中获取目标视觉效果并使用
setSlicerState
过滤日期报告,
const filter : models.IAdvancedFilter = {
$schema: "http://powerbi.com/product/schema#advanced",
target: {
table: "Date",
column: "Date"
},
filterType: models.FilterType.Advanced,
logicalOperator: "And",
conditions: [
{
operator: "GreaterThanOrEqual",
value: "2014-10-12T21:00:00.000Z"
},
{
operator: "LessThanOrEqual",
value: "2014-11-28T22:00:00.000Z"
}
]
};
try {
const visual = await page.getVisualByName('Visual_Name');
// Set the slicer state which contains the slicer filters.
await visual.setSlicerState({ filters: [filter] });
console.log("Date slicer was set.");
}
catch (errors) {
console.log(errors);
}