【问题标题】:How to retrieve a parameter value that's not set in the report?如何检索报表中未设置的参数值?
【发布时间】:2018-11-07 20:09:42
【问题描述】:

我在报表生成器中工作,调用一个存储过程,该过程具有一个参数,当它为空时,它会将自身设置为某个值。我想在报告中显示此参数设置的内容。通过实验,报表生成器的参数集合仅显示从报表发送的参数。

我考虑过但无法发挥作用或效果不佳的替代方案:

  1. 将参数添加到选择语句。主要缺点是如果没有结果,则不会显示值。
  2. 使用返回值或输出参数。似乎没有办法做到这一点。
  3. 在存储过程中重新创建“null”逻辑。显示正确的输出,但这是一个代码分支。

如何显示此值?有没有办法显示返回值或输出值?

【问题讨论】:

  • 该参数是否用于过滤列?
  • @scsimon 我尝试将参数添加为列并将文本框绑定到列,但正如我在 #1 中所说,如果结果为零,则不会显示值。

标签: sql-server reporting-services reportbuilder3.0


【解决方案1】:

您可以更改过程以在 UNION ALL 选择中返回参数值,以便始终返回具有参数值的行。该行的所有其他列可以为 NULL,以便您可以在报告的其余部分中将其过滤掉。

另一种可能性是将第二个数据集添加到报表中,它只会根据您传递的内容获取参数的值。然而,这也是一种代码分叉。但是,可以通过将其放入 UDF 中并在两个数据集中使用相同的 UDF 来缓解分叉。

另一种可能性是在报告的自定义代码块中复制填充参数的逻辑。但是,这也是一个代码分叉。

【讨论】:

    【解决方案2】:

    我从未在 Report Builder 界面中工作过,但我确实有相当多的在 BIDS/VS 中构建报告的经验...在 rdl 中设置参数默认值以匹配存储过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多