Power BI 将参数传递给报表



我有一个具有多个参数的 Power BI 报表,我需要将报表嵌入网页中,并希望通过嵌入 URL 或 Power BI JavaScript 库设置这些参数。这可能吗?从根本上说,我想将一些数据从托管报表的页面传递到报表,并在 M 中访问该数据。有什么机制允许这样做吗?

您可以使用 javascript 库来应用过滤器。假设你在一个名为"具有状态的示例数据"的表中有一个 PowerBI 报表和一些状态数据,该表具有一个名为"State"的列,并且你想要使用 javascript API 按状态值进行筛选。

.HTML

<p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#Parameters" aria-expanded="false" aria-controls="collapseExample">
Parameters
</button>
</p>
<div class="collapse" id="Parameters">
<div class="card card-body">
<div id="state-picker"></div>
</div>
<br/>
</div>

爪哇语

report.on("loaded", function (event( {

report.on('loaded', function() {
report.render();
populateStatePicker();
$("#state-picker input").click(setStateFilter);
});
var selectStates = function (states) {
$("#state-picker input").each(function () {
var state = $(this).prop('id');
var selectState = (states.indexOf(state) > -1);
$(this).prop('checked', selectState);
});
setStateFilter();
}

var unselectAllStates = function () {
$("#state-picker input:checked").each(function () {
$(this).prop('checked', false);
});
setStateFilter();
}
var populateStatePicker = function () {
var states = ['AK', 'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'];
$("#state-picker").empty();
for (var index = 0; index < states.length; index++) {
var state = states[index];
$("#state-picker")
.append($("<div>", { class: "state-container" })
.append($("<input>", { id: state, name: state, type: "checkbox", class: "state-checkbox" }))
.append($("<label>", { for: state, class: "state-label" }).text(state))
);
}
}
var setStateFilter = function () {
var states = [];
$("#state-picker input:checked").each(function () {
states.push($(this).attr("name"));
});
if (states.length > 0) {
const basicStateFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Sample Data with State",
column: "State"
},
operator: "In",
values: states
}
// apply filter to report
report.setFilters([basicStateFilter]);
}
else {
report.removeFilters();
}
};

这将在状态值的 UI 上提供一个参数框。单击它们时,PowerBI 报表将根据你单击的内容更新其筛选器。

享受。

最新更新