我是SSRS编程的新手,我遇到了一个无法找到答案的挑战。我们正在保护我们的SSRS网站,到目前为止我已经取得了成功,但我正在努力做到以下几点:
当用户登录时,我们有他们的UserID。我有一个包含UserID和他们的“角色”名称的表。我想要做的是如果登录用户的ID没有出现在列表中(特定角色列表“),那么不要返回任何数据。隐藏Tablix或显示一条消息,说明他们没有被授权。
到目前为止,我有我的主报告(DataSet1
),我有我的查找表(DataSet2
)。我在可见性下的主报表上有以下表达式。
=IIF(First(Fields!LoginNm.Value, "DataSet2") = Parameters!UserID.Value,False,True)
问题是,如果列表中的第一个用户ID是登录的人,但是在此之后的任何内容都无法正常工作,这将会起作用。我尝试删除First
,但后来我发现了一个错误。
任何人都可以帮我弄清楚如何用另一个表中的值隐藏表格吗?
答案 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
中使用。