【问题标题】:How to set filters in reports power BI embedded javascript如何在报告中设置过滤器 Power BI 嵌入式 javascript
【发布时间】:2019-07-31 06:01:26
【问题描述】:

我想在我的报告 power bi 嵌入式上添加一些过滤器,我有一个 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);

【问题讨论】:

    标签: javascript powerbi


    【解决方案1】:

    要过滤您的嵌入报告,您必须构造一个或多个过滤器并将它们作为数组传递给 JavaScript 客户端 - 在 embedConfigurationfilters 属性中,或作为 report/page/ 的参数visual setFilters 方法。

    过滤器可以是以下类型之一:

    • IBasicFilter
    • 高级过滤器
    • IRelativeDateFilter
    • ITopNFilter
    • IIncludeExcludeFilter

    例如,要过滤名为Product 的表以仅显示数据,其中Count 的列是1、2 或3,可以如下构造:

    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
    }
    

    然后修改您的代码以将此过滤器传递给embedConfiguration

    var embedConfiguration = {  
        type: 'report',  
        id: json.ReportId,  
        embedUrl: json.EmbedUrl,  
        tokenType: models.TokenType.Embed,  
        accessToken: json.EmbedToken,
        filters: [basicFilter]  
    };
    

    有关配置嵌入元素的更多信息,请参阅Embed Configuration Details,有关如何使用不同过滤器类型和应用它们的更多信息,请参阅Filters

    【讨论】:

    • 感谢您的回答,但是当我添加此行时出现错误:过滤器:[basicFilter] 到 Embedconfiguration 例如在我的情况下,我只想使用表格进行过滤:“合同”和列:“IdContract”。所以它会是这样的: const basicFilter: pbi.models.IBasicFilter = { $schema: "powerbi.com/product/schema#basic", target: { table: "Contract", column: "IdContract" }, operator: "In", values: [123456], filterType: 1 // pbi.models.FilterType.BasicFilter }
    【解决方案2】:

    @Andrey Nikolov

    感谢您的回答,但是当我将这一行添加到 Embedconfiguration 时出现错误:过滤器:[basicFilter] 例如,在我的情况下,我只想使用表进行过滤:“合同”和列:“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]  
    };
    

    不知道你是不是这个意思……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多