.net SSRS 2008 R2:以编程方式设置下拉列表的选定值
我有一个包含用户下拉列表的报告。我希望选择当前登录的用户作为默认用户 下拉列表的值为UserId和UserName。我尝试了以下方法,但没有成功:.net SSRS 2008 R2:以编程方式设置下拉列表的选定值,.net,reporting-services,ssrs-2008,.net,Reporting Services,Ssrs 2008,我有一个包含用户下拉列表的报告。我希望选择当前登录的用户作为默认用户 下拉列表的值为UserId和UserName。我尝试了以下方法,但没有成功: ReportViewer.ServerReport.SetParameters(new ReportParameter("SelectedUserId", CurrentUser.Id.ToString())); 我可以在万不得已的情况下使用JavaScript来实现这一点,但有没有办法在服务器端实现这一点 谢谢 更新: UserId是用户表的主键
ReportViewer.ServerReport.SetParameters(new ReportParameter("SelectedUserId", CurrentUser.Id.ToString()));
我可以在万不得已的情况下使用JavaScript来实现这一点,但有没有办法在服务器端实现这一点
谢谢
更新:
UserId是用户表的主键,不能从登录的用户名派生。。这就是你的建议吗
但我没意识到我可以在那里提出疑问。我确实将CurrentUserId作为内部参数,并将其用作填充下拉列表的SP的参数
我使用它将默认值设置为:=参数!CurrentUserId.Value
它在Visual Studio和报表管理器中使用默认的CurrentUserId工作。但是,在报告中,CurrentUserId设置为:
ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));
这似乎太晚了,无法在下拉列表中进行设置。打开报告参数编辑表单,将用户id参数的默认值部分的非查询值设置为:
=User!UserID
请注意,这是一个区分大小写的比较:如果您的用户ID列表是大写的,并且您的网络登录是小写的,那么参数值的查找将失败
此外,您的网络登录可能有一个域,但它没有出现在您的用户ID列表中-如果是这样,您将不得不删除它
例如,假设您的网络登录是小写的,并且有一个域,而用户id列表是大写的,没有域。对于未查询的默认参数值,可以使用以下表达式:
=Ucase(Replace(User!UserID, "MYDOMAIN\", ""))
打开报告参数编辑表单,并将用户id参数的默认值部分的非查询值设置为:
=User!UserID
请注意,这是一个区分大小写的比较:如果您的用户ID列表是大写的,并且您的网络登录是小写的,那么参数值的查找将失败
此外,您的网络登录可能有一个域,但它没有出现在您的用户ID列表中-如果是这样,您将不得不删除它
例如,假设您的网络登录是小写的,并且有一个域,而用户id列表是大写的,没有域。对于未查询的默认参数值,可以使用以下表达式:
=Ucase(Replace(User!UserID, "MYDOMAIN\", ""))
让它工作起来:
步骤:
添加CurrentUserId作为参数
对于“用户”下拉列表,将默认设置为:
=Parameters!CurrentUserId.Value
然后在容器页面中:
ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));
以前在容器中运行时,此功能不起作用。。但现在它是..让它工作起来了:
步骤:
添加CurrentUserId作为参数
对于“用户”下拉列表,将默认设置为:
=Parameters!CurrentUserId.Value
然后在容器页面中:
ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));
以前在容器中运行时,此功能不起作用。。但现在是..当你说“当前登录用户”时,我以为你是指登录网络。当你说“当前登录用户”时,我以为你是指登录网络。