【问题标题】:SSRS 2008 R2: Set selected value of drop down programmaticallySSRS 2008 R2:以编程方式设置下拉列表的选定值
【发布时间】:2011-07-29 00:13:23
【问题描述】:

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

下拉列表的值为 UserId 和 UserName。我尝试了以下但没有运气:

ReportViewer.ServerReport.SetParameters(new ReportParameter("SelectedUserId", CurrentUser.Id.ToString()));

作为最后的手段,我可​​以使用 JavaScript 来做到这一点,但是有没有办法在服务器端做到这一点?

谢谢

更新:

UserId 是用户表的主键,不能从登录的用户名派生出来。这是您的建议吗?

没有意识到我可以在那里提出一个查询。我确实将 CurrentUserId 作为内部参数,我将其用作填充下拉列表的 SP 的参数。

我用它来设置默认值:=Parameters!CurrentUserId.Value

它在 Visual Studio 和具有默认 CurrentUserId 的报表管理器中工作。但是在报告中 CurrentUserId 设置为:

ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));

这似乎设置得太晚了,无法在下拉菜单中设置。

【问题讨论】:

    标签: .net reporting-services ssrs-2008


    【解决方案1】:

    打开报告参数编辑表单,将用户id参数的默认值部分的非查询值设置为:

    =User!UserID
    

    请注意,这是区分大小写的比较:如果您的 UserId 列表是大写的并且您的网络登录名是小写的,则参数值的查找将失败。

    此外,您的网络登录名中可能有一个域没有出现在您的用户 ID 列表中 - 如果是这样,您必须将其删除。

    例如,假设您的网络登录名是小写的并且有一个域,而用户 ID 列表是大写的并且没有域。对于非查询的默认参数值,您可以使用如下表达式:

    =Ucase(Replace(User!UserID, "MYDOMAIN\", ""))
    

    【讨论】:

    • 当你说“当前登录的用户”时,我以为你的意思是登录到网络。
    【解决方案2】:

    搞定了:

    步骤:

    添加 CurrentUserId 作为参数。

    对于用户下拉菜单,将默认设置为:

    =Parameters!CurrentUserId.Value
    

    然后在容器页面中:

    ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));
    

    以前在容器中运行时这不起作用..但现在..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多