在我的应用中,我正在显示一个 Power BI 报告。它已经可以正常工作了,所以通过其 ID(guid)显示任何报告都没有问题。
但是有一些需要参数化的报告,例如使用当前年份或查看报告的人员。 这就是我的问题:如何做到呢?
更具体来说,我将报告嵌入 HTML 的 <iframe>
元素中。我将 iframe 的 URL 设置为从报告定义的 embedUrl
获取的 URL(从 REST API 接收)。我通过调用 postMessage()
的 JavaScript 代码来控制它。
报告定义:
{
"id":"12345678-6418-4b47-ac7c-f8ac7791a0aa",
"name":"Retail Analysis Sample",
"webUrl":"https://app.powerbi.com/reports/12345678-6418-4b47-ac7c-f8ac7791a0aa",
"embedUrl":"https://app.powerbi.com/reportEmbed?reportId=12345678-6418-4b47-ac7c-f8ac7791a0aa"
}
JavaScript代码加载报告:function onFrameLoaded() {
var m = {
action: "loadReport",
reportId: reportId,
accessToken: accessToken
};
iframe.contentWindow.postMessage(JSON.stringify(m), "*");
}
现在我需要根据自定义应用程序中的参数过滤报告。是否有一种方法可以发送或传递值以过滤报告中的数据集?