如何从PowerBi嵌入式导出报告中获取当前筛选器



我使用的是powerbi嵌入式,我想要一个类似于powerbi.com上使用的导出按钮,它会询问您是否要应用当前过滤器。

我如何在javaScript中获得当前的过滤器,以便将这些过滤器传递到后端,或者传递到JavaScriptAPI以生成PDF?

我目前正在使用以下代码生成PDF,我只是不知道如何在javaScript 中获得当前配置、当前过滤器和当前页面

public PowerBiExportViewModel CreateExport(Guid groupId,
Guid reportId,
IEnumerable<PowerBiReportPage> reportPages,
FileFormat fileFormat,
string urlFilter,
TimeSpan timeOut)
{
var errorMessage = string.Empty;
Stream stream = null;
var fileSuffix = string.Empty;
var securityToken = GetAccessToken();
using (var client = new PowerBIClient(new Uri(BaseAddress), new TokenCredentials(securityToken, "Bearer")))
{
var powerBiReportExportConfiguration = new PowerBIReportExportConfiguration
{
Settings = new ExportReportSettings
{
Locale = "en-gb",
IncludeHiddenPages = false
},
Pages = reportPages?.Select(pn => new ExportReportPage { PageName = pn.Name }).ToList(),
ReportLevelFilters = !string.IsNullOrEmpty(urlFilter) ? new List<ExportFilter>() { new ExportFilter(urlFilter) } : null,
};
var exportRequest = new ExportReportRequest
{
Format = fileFormat,
PowerBIReportConfiguration = powerBiReportExportConfiguration
};
var export = client.Reports.ExportToFileInGroupAsync(groupId, reportId, exportRequest).Result;

您可以去PowerBi游乐场玩他们的样例报告。在";嵌入";按钮你有";交互;和获取过滤器的选项。作为响应,您将获得带有过滤器的JSON。如果你懒得去那里,这里是它为我创建的代码

// Get a reference to the embedded report HTML element
var embedContainer = $('#embedContainer')[0];
// Get a reference to the embedded report.
report = powerbi.get(embedContainer);
// Get the filters applied to the report.
try {
const filters = await report.getFilters();
Log.log(filters);
}
catch (errors) {
Log.log(errors);
}

最新更新