【问题标题】:Manually enter a parameter value or All by default in SSRS在SSRS中手动输入参数值或默认全部
【发布时间】:2018-03-08 21:31:25
【问题描述】:

我正在尝试在 SSRS 中创建一个参数,用户可以选择手动输入 ID 或让报告返回所有记录。这是参数当前的样子:

在这种情况下,用户可以手动输入一个有效的 providerid。但是用户是否可以将 providerid 参数留空,然后默认为所有记录运行报告?

providerid 参数填充了一个存储过程:

    Select distinct cast(providerid as varchar(25)) as providerid
    from Table A

我在这里阅读了其他看起来相似的主题,但我不知道如何完成这项工作。

【问题讨论】:

标签: sql-server reporting-services parameters ssrs-2012


【解决方案1】:

执行此操作的标准方法是:

将另一个名为 ALL 且具有特殊值的项目添加到您的下拉列表中

Select distinct  
cast(providerid as varchar(25)) as providerid,
cast(providerid as varchar(25)) as providerLabel
from Table A
union all
select -1, 'All Providers'

确保正确分配标签和值。

在你的存储过程中允许这个特殊值:

where ...
and  (providerid = @providerid or @providerid = -1)
and ...

【讨论】:

  • 我仍然无法正常工作。参数框不应填充任何内容。它应该是空白的,它将返回所有记录,或者用户可以手动输入一个 id。
  • 如果必须为空,则将“所有提供者”替换为“”。如果这不能解决问题,请清楚说明您的问题。
  • 我认为问题可能在于我如何填充 SSRS 参数框。不知道在这里做什么。我将可用值留空。对于默认值,我选择了 =“”。在我的 SP 中,我添加了一个 UNION ALL of Select -1, ' '。但从逻辑上讲,这意味着如果下拉框留空,则该值将 =-1,它不会返回任何内容。我需要 -1 来返回所有值。
  • 这就是我回答的第 2 部分所解释的(尽管不是很详细)。您需要更改报告过滤器,以便如果通过 -1,它将返回所有内容。这是 SSRS 中的标准做法。我认为存储过程是填充报告的内容,但也许我误解了
  • 您的问题解决了吗?同样,这是实现此功能的一种经过验证且可靠的方法
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
相关资源
最近更新 更多