【问题标题】:Blank Parameter to Null Parameter in SSRSSSRS 中的空参数到空参数
【发布时间】:2019-04-26 06:19:08
【问题描述】:

我有一个向下钻取报告,其参数为:父报告 - @valid Nvarchar(20) = '' 并且在子报告中 - @valid Nvarchar(20) = Null。

两个报告都运行得很好,但是在文本框属性 > 操作 > 转到报告中映射此参数后我遇到了问题。运行报告时出现错误,

“为报告参数提供的值无效”

此报告的查询来自存储过程。在子报表“参数属性”中,我勾选了“允许空值”文本框,将可用参数设置为来自查询并指定默认值以来自查询。我做错了什么以允许返回错误?感谢您的帮助。

谢谢。

【问题讨论】:

  • 我不能 100% 确定这就是您所追求的,但您可以将 =IIf(Parameters!valid.Value = "", Nothing, Parameters!valid.Value) 之类的表达式传递给子报告参数,即清空空字符串。你是这个意思吗?
  • 不错的一个!效果很好。谢谢
  • 哦,酷!这只是一个猜测,所以我只是添加了一条评论,但由于它似乎在标记上,我会在几秒钟内添加一个正确的答案......谢谢!

标签: reporting-services


【解决方案1】:

如果您的第二份报告需要 NULL 值(即 SSRS 中的 Nothing),您可以根据父参数将基于表达式的参数传递给子报告,确保它是空字符串在父级,您可以将其显式设置为 Nothing:

=IIf(Parameters!valid.Value = "", Nothing, Parameters!valid.Value)

这样空字符串将永远不会被传递并且您的孩子报告;只有它期望的 NULL 值。

【讨论】:

    【解决方案2】:

    如果您正在考虑从 URL 传递一个空参数,比如说某种 CLI,您必须在 URL 的参数部分包含一个 parameter:isNull=True。并且总是记得在报告编辑器,参数属性中检查“允许空值”。

    假设我们有一份关于运动和体育场馆的报告,但我们有一项无效运动......它会是这样的>

    http://<server/report>&rs:Command=Render&rc:Parameters=false&rc:toolbar=false&sport:isNull=True&stadium=CampNou
    

    【讨论】:

      【解决方案3】:

      将参数设置为Allow Blank = YesDefault Value = ""。在代码中留有空白参数。

      【讨论】:

      • 也许您可以使用代码片段而不是未格式化的内联代码来格式化您的答案,使其更具可读性?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多