【问题标题】:Reporting Services 2008: Using user!userid in ParametersReporting Services 2008:在参数中使用 user!userid
【发布时间】:2021-02-12 23:47:33
【问题描述】:

我有一个带有参数的报表,该参数由查询返回的销售代表列表填充。我想根据运行报告的用户的安全权限过滤该列表。

为了使查询正常工作,我需要将 user!userID 传递给数据库。我试过这样的事情:

...其中用户名 = 用户!用户 ID...

但它不喜欢这种语法。

【问题讨论】:

    标签: reporting-services parameters ssrs-2008


    【解决方案1】:

    将您的查询更改为:

    where UserName = @user
    

    ...并在“参数”选项卡中,将“用户!用户 ID”分配给“@user”参数。

    【讨论】:

    • 当我尝试我得到以下错误。报告参数“用户名”具有取决于报告参数“用户”的 DefaultValue 或 ValidValue。前向依赖无效。
    • 真的吗?我完全按照我在自己的几份报告中所描述的去做。除了上述步骤之外,您还有其他操作吗?
    • 终于想通了。将“用户”参数移到列表上方,使其位于我的“用户名”参数之上。这样,当“userName”的数据集被填充时,它就在内存中。感谢您保证这会奏效。非常感谢您的帮助。
    • 哦,你也有一个“用户名”参数?很高兴我能帮上忙。
    • @Jeff:据我所知,您不需要这两个“用户...”参数。他们将服务于什么目的?另请记住,如果您使用报告参数,聪明的用户将能够弄清楚如何将其他人的用户名传递到报告中。为了安全起见,您应该依赖使用 User!UserID 值。
    【解决方案2】:

    只是想分享一下我的经验,如果有一些像我一样在没有任何线索的情况下四处游荡的可怜人。我发现我的 @user 参数必须在列表中排在第一位,才能填充我的下拉列表,这取决于它。我不知道为什么会这样。

    【讨论】:

    • 是的,我也看到过这种行为。当您将表达式添加到参数值(如 =User!UserID)时,SSRS 将其视为级联参数。如果它不是列表中的第一个,那么它将像级联参数一样填充。其他人也看到了这一点:blog.summitcloud.com/2009/12/fix-refresh-of-parameters-in-ssrs
    • 我花了一个小时比较 2 份报告,想知道为什么我的用户信息没有被适当地引入。在原始报告中,用户参数不是第一个,但它工作正常。在第二份报告中,我一直用头撞墙,直到我来到这里并决定将它移到列表的顶部......这就像一个魅力。当这样的问题不一致时,这是非常令人沮丧的。感谢您在这里发布!
    【解决方案3】:

    是的,当在查询中使用用户 ID 设置另一个参数的默认值时,我可以确认订单很重要。我必须删除并重新创建参数才能使其正常工作。我看不到移动参数顺序的方法

    【讨论】:

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