Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net SSRS 2008 R2:以编程方式设置下拉列表的选定值_.net_Reporting Services_Ssrs 2008 - Fatal编程技术网

.net SSRS 2008 R2:以编程方式设置下拉列表的选定值

.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是用户表的主键

我有一个包含用户下拉列表的报告。我希望选择当前登录的用户作为默认用户

下拉列表的值为UserId和UserName。我尝试了以下方法,但没有成功:

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()));
以前在容器中运行时,此功能不起作用。。但现在是..

当你说“当前登录用户”时,我以为你是指登录网络。当你说“当前登录用户”时,我以为你是指登录网络。