2014-09-24 92 views
1

我对SSRS编程很陌生,我碰到过一个我无法找到答案的挑战。我们正在确保我们的SSRS网站的安全,并且迄今为止我已取得成功,但我正在尝试执行以下操作:SSRS-隐藏基于另一个Tablix值的Tablix

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

到目前为止,我有我的主要报告(DataSet1),我有我的查找表(DataSet2)。我对下的可视性主报告下面的表达式。

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

的问题是,如果第一个用户,这将工作在列表中的ID是登录的人,但之后的任何东西都不能正常工作。我尝试删除First但后来我只是得到一个错误。

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

回答

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中也可用。