Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从asp.net mvc应用程序向power bi传递报告级筛选器_Asp.net Mvc_Powerbi_Powerbi Embedded_Powerbi Filters - Fatal编程技术网

Asp.net mvc 从asp.net mvc应用程序向power bi传递报告级筛选器

Asp.net mvc 从asp.net mvc应用程序向power bi传递报告级筛选器,asp.net-mvc,powerbi,powerbi-embedded,powerbi-filters,Asp.net Mvc,Powerbi,Powerbi Embedded,Powerbi Filters,我在asp.net mvc应用程序中嵌入了power bi报表。它工作正常,正在显示数据。我有一个问题,在我的应用程序中,每个客户几乎没有像城市这样的分支机构。该客户机的每个用户都可以访问所有或某些分支,并根据该访问权限,在该用户登录到系统时显示数据 我希望在power bi中实现相同的功能,即当用户登录到系统并查看报告时,它应该显示他/她有权访问的分支机构的数据。我找到了一个解决办法 [在这里,我们可以从程序端设置过滤器值。我在视图中应用了这一点,但我仍在获取所有数据 const br

我在asp.net mvc应用程序中嵌入了power bi报表。它工作正常,正在显示数据。我有一个问题,在我的应用程序中,每个客户几乎没有像城市这样的分支机构。该客户机的每个用户都可以访问所有或某些分支,并根据该访问权限,在该用户登录到系统时显示数据

我希望在power bi中实现相同的功能,即当用户登录到系统并查看报告时,它应该显示他/她有权访问的分支机构的数据。我找到了一个解决办法 [在这里,我们可以从程序端设置过滤器值。我在视图中应用了这一点,但我仍在获取所有数据

    const branchFilter = {
        $schema: "http://powerbi.com/product/schema#basic",
        target: {
            table: "tblWorkhistory",
            column: "BranchID"
        },
        operator: "In",
        values: [1],
        filterType: models.FilterType.BasicFilter
    }

        var config = {
        type: 'report',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedReportId,
        permissions: models.Permissions.All,
        viewMode: models.ViewMode.View,
        filters: [branchFilter],
        settings: {
            filterPaneEnabled: true,
            navContentPaneEnabled: true
        }
    };
在这里,我想应用过滤器,它只显示id为1的分支的数据,但它显示所有数据。我在这里遗漏了什么吗?在这段代码之后,我还需要在报告端做什么吗

问候,,
Savan

要根据登录到应用程序的用户显示数据,您必须首先在power bi报告中应用行级安全性(RLS),然后按照以下文章中的步骤进行操作

支持使用嵌入配置应用过滤器,并且您共享的代码示例似乎有效

如果report.setFilters也出现故障,则可能是筛选器有问题

尝试验证筛选器的数据类型是否为1或“1”

如果这不起作用,是否从.setFilters请求返回任何错误消息?:

const filter = { ... };

report.setFilters([filter])
  .catch(errors => {
    // Handle error
  });

了解有关通过JS SDK设置过滤器的更多信息。

您缺少应用声明过滤器的步骤,例如通过调用
report.setFilters([branchFilter])
这很有帮助,谢谢。当我将特定值作为筛选值传递时,它起作用,但当我想传递分配给任何变量的值时,它就不起作用了。我正在使用
var currentBranchID=“@AppSession.Current.branchhid”
并且在上面的branchFilter中,而不是在static 1中,我正在使用`target:{table:{WorkHistory“,列:“BranchID”},运算符:“In”,值:currentBranchID`如果我将currentBranchID放入[],则返回所有数据,如果删除[],则返回语法错误。我可以通过任何方式传递动态值。