在我的应用程序中,我正在显示 Power BI 报告。它已经可以工作了,因此通过 ID (guid) 显示任何报告都没有问题。
但是有些报告需要参数化,例如,当前年份或查看报告的人。这是我的问题:怎么做?
更具体地说,我将报告嵌入到 HTML<iframe>
元素中。我将 iframe URL 设置为从报告定义接收的 URL embedUrl
(从 REST API 接收)。我通过调用postMessage()
.
报告定义:
{
"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), "*");
}
现在我通过自定义应用程序中的参数过滤报告。有没有办法发送或传递一个值来过滤报表中的数据集?