SSRS-根据另一个Tablix值隐藏Tablix

时间:2014-09-24 22:38:15

标签: .net variables reporting-services dataset query-parameters

我是SSRS编程的新手,我遇到了一个无法找到答案的挑战。我们正在保护我们的SSRS网站,到目前为止我已经取得了成功,但我正在努力做到以下几点:

当用户登录时,我们有他们的UserID。我有一个包含UserID和他们的“角色”名称的表。我想要做的是如果登录用户的ID没有出现在列表中(特定角色列表“),那么不要返回任何数据。隐藏Tablix或显示一条消息,说明他们没有被授权。

到目前为止,我有我的主报告(DataSet1),我有我的查找表(DataSet2)。我在可见性下的主报表上有以下表达式。

=IIF(First(Fields!LoginNm.Value, "DataSet2") = Parameters!UserID.Value,False,True)

问题是,如果列表中的第一个用户ID是登录的人,但是在此之后的任何内容都无法正常工作,这将会起作用。我尝试删除First,但后来我发现了一个错误。

任何人都可以帮我弄清楚如何用另一个表中的值隐藏表格吗?

1 个答案:

答案 0 :(得分:0)

改为使用Lookup

=IIF(Lookup(Parameters!UserID.Value, Fields!LoginNm.Value, Fields!LoginNm.Value, "DataSet2") = Parameters!UserID.Value, False, True)

Lookup功能在SSRS 2008 R2及更高版本中可用。

请注意,用户ID也可在全局变量User!UserID中使用。