【问题标题】:Issues with Passing Multi-value Parameters to a Drill through Report将多值参数传递给钻取报表的问题
【发布时间】:2018-10-05 15:39:16
【问题描述】:

我有两个报告,我将多值参数传递给它的下划线数据,并且两个报告独立工作得很好。使用函数 dbo.UTILfn_Split 拆分参数字符串。当尝试从主报告或摘要报告钻取到子报告或详细报告时,报告中的所有其他参数字段都将被填充,但多值参数字段除外。参数列表或值列在详细报告中但未选中,因此即使详细报告参数属性设置为允许多个值,也无法运行报告。在这两个报告中,where 子句都设置为“IN”而不是“=”。我该如何解决这个问题?

【问题讨论】:

  • 澄清一下,在您的参数属性中,可用值设置为“无”并且“允许多个值”未选中?您正在输入一个逗号分隔值的字符串?
  • 可用值设置为数据集中的所有值,并选中“允许多个值”。谢谢
  • 字符串即将到来 ID 字段,其想法是能够检查和取消选中您想要或不想要的值。
  • 好的,那么您根本不需要拆分功能。无论如何,您是否已将参数添加到子报表属性中?如果是这样,这些属性是如何设置的?如果您尝试加入/拆分值,这可能会导致问题。
  • 为什么必须将单个参数的多个值传递给钻取报告?例如,如果您想钻取到订单的 OrderDetails,您将传递 OrderID 而不是传递 OrderDetailsID 的列表。

标签: reporting-services ssrs-2008 ssrs-2012 ssrs-2008-r2 ssrs-tablix


【解决方案1】:

在您的摘要报告中,当您将参数传递给子报告或详细报告时,传递的值参数应该是这样的表达式:

=join(parameters!yourMultivaluedParameter.Value,",")

之后,您将参数的名称传递给数据集详细报告中的相应参数。 在您的 SQL (SP) 中,通过将参数与您的函数拆分来获取参数的多值 如下所示,具体取决于您的函数的结果,例如:

INNER JOIN dbo.SplitFunction( @yourMultivaluedParameter,',')  tmp on tmp.yourColumn = ...etc...

希望对你有帮助...

【讨论】:

  • 感谢 Amazigh 的回复。我确实对详细报告使用了 JOIN 函数,但问题是方括号框没有打勾,因此报告无法运行。我错过了什么吗?
  • 检查参数的默认值。在旅游案例中是否必须看到该参数?通常在详细报告中,汇总中传递的参数是隐藏的。我开发了太多子报表,并且在所有子报表中都没有可见的参数
  • 默认值设置为允许“”(空白)
  • 把你所有的子报表参数隐藏起来,没有默认值,anaway,参数值一定是从sammury传过来的!
猜你喜欢
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多