5

我想访问SSRS 2012报告中的会话或视图状态变量,就像我们在c#.

Session["user"]

我想在SSRS报告中这样访问。

我想包括生成报告时登录的用户。

有什么办法可以做到这一点?我们可以在自定义代码中访问它SSRS吗?

4

3 回答 3

1

在后面的代码中,您可以在报告参数处复制所需的数据。

    // Copy the session username to a report param called "CurrentUser".
    ReportParameter userParam = new ReportParameter("CurrentUser", Session["user"]);

    // add the parameter to the report
    reportViewer.ServerReport.SetParameters(new ReportParameter[] { userParam });

然后像添加任何其他参数一样将您的参数添加到报告中。参见示例:http: //msdn.microsoft.com/en-us/library/aa337091.aspx

于 2013-05-31T15:45:46.513 回答
1

在报告本身中,您可以使用 引用运行报告的用户User!UserID

请参阅内置全局变量和用户参考

评论后编辑:

由于您似乎没有对运行报告的用户的内部引用,因此您最好的选择可能是使用Hidden Parameter传递用户引用。

来自在线书籍:

您可以在已发布报表的参数输入区域隐藏参数,但在报表 URL 或订阅定义中为其设置值。

所以在这种情况下,这意味着该参数永远不会对用户可见,但您可以通过编程方式设置它。

您可以将基于的字符串传递给报告Session["user"],或者您在报告之外管理用户 ID,然后根据报告中的要求显示/操作此参数。

于 2013-05-24T09:53:13.727 回答
0

如果有很多公共数据,您可以将会话数据存储在数据库的临时表中。在运行报告之前更新此会话数据表。然后,您可以像访问报告中的任何其他表一样访问这些数据,只需将用户 ID 指定为参数。

于 2013-05-27T11:27:50.983 回答