我想在嵌入的报表上添加一些过滤器,我有一个html文件,我需要在javascript中添加一些过滤器,但是我没有开发经验。我只需要看一个示例,看看如何添加它。
<head> `enter code here`
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>test</title>
<script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript" language="javascript" src="https://rawgit.com/Microsoft/PowerBI-JavaScript/master/dist/powerbi.min.js"></script>
</head>
<body>
<h1>test</h1>
<div id="reportContainer" style="width: 80%; height: 800px;"></div>
</body>
<script>
$(document).ready(function () {
var getEmbedToken = "https://testclienttest.azurewebsites.net/api/HttpTrigger1?code=XXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXX==";
$.ajax({
url: getEmbedToken,
jsonpCallback: 'callback',
contentType: 'application/javascript',
dataType: "jsonp",
success: function (json) {
var models = window['powerbi-client'].models;
var embedConfiguration = {
type: 'report',
id: json.ReportId,
embedUrl: json.EmbedUrl,
tokenType: models.TokenType.Embed,
accessToken: json.EmbedToken
};
var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
},
error: function () {
alert("Error");
}
});
});
</script>
</html>
我认为要添加的过滤器在此行之后:var report = powerbi.embed($ reportContainer.get(0),embedConfiguration);
答案 0 :(得分:0)
要过滤嵌入的报告,您必须构造一个或多个过滤器,并将它们作为数组传递给JavaScript客户端-在filters
的{{1}}属性中,或者作为{{1}的参数} / embedConfiguration
/ report
page
方法。
过滤器可以来自以下类型之一:
例如,要过滤名为visual
的表以仅显示数据,其中setFilters
列为1、2或3的方式可以构造如下:
Product
然后修改您的代码以将此过滤器传递给Count
:
const basicFilter: pbi.models.IBasicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Product",
column: "Count"
},
operator: "In",
values: [1,2,3],
filterType: 1 // pbi.models.FilterType.BasicFilter
}
有关配置embed元素的更多信息,请参见Embed Configuration Details,并且要了解有关如何使用不同过滤器类型并应用它们的更多信息,请参见Filters。
答案 1 :(得分:0)
@Andrey Nikolov
谢谢您的回答,但是当我添加以下行时出现错误:过滤器:[basicFilter]到Embedconfiguration,例如,在我的情况下,我只想使用表“ Contract”和列“ IdContract”进行过滤。
所以会是这样:
const basicFilter: pbi.models.IBasicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Contract",
column: "IdContract"
},
operator: "In",
values: [123456],
filterType: 1 // pbi.models.FilterType.BasicFilter
}
然后
var embedConfiguration = {
type: 'report',
id: json.ReportId,
embedUrl: json.EmbedUrl,
tokenType: models.TokenType.Embed,
accessToken: json.EmbedToken,
filters: [basicFilter]
};
我不知道这是否是你的意思...