SSRS为接受为参数的多个值生成相同的报告

时间:2014-02-06 12:30:04

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

我需要为多个值重复生成相同的报告。我在新报告中使用多值参数接受这些值。我还创建了一个表格,原始报告作为子报告。 如何将用户在参数中选择的值传递给此表?我创建了一个数据集,但是我无法将这些值绑定到数据集,而数据集又绑定到表中。我读过几篇文章,然而,我无法让它发挥作用。请指教。

2 个答案:

答案 0 :(得分:0)

您可以在主报表中绑定子报表对象上的参数。在子报告中,您将这些参数应用于数据集。

答案 1 :(得分:0)

经过几天的努力,我终于找到了解决方案on another stackoverflow post

在此处重现:

要执行此操作,您必须将子报表放入列表或Tablix中。据我所知,没有简单的方法让列表或tablix迭代多值参数中的值。它只接受数据集。

因此,我能想到的唯一解决方法是将参数拆分为数据集中的一组行,这对SQL而言可能是微不足道的。但是,如果参数的可用值来自数据集,则情况会有所改善:您可以将Tablix / list挂钩到数据集,并过滤未在参数中选择的项目。

编辑:通过将数据集查询构建为表达式,我发现了将多值参数扩展为数据集的一种略微破解的解决方案。假设参数@M​​ultiParamX,此表达式将创建一个查询,该查询在一列中输出所有选定的值:

="SELECT '" 
&
 Join(Parameters!MultiParamX.Value, "' MyParam UNION ALL SELECT '")
&
"' MyParam"

这可能会生成一个查询,如下所示(为了便于阅读而重新格式化):

SELECT 'A' MyParam
UNION ALL
SELECT 'B' MyParam
UNION ALL
SELECT 'C' MyParam
-- Etc. for all selected values

这将生成一个结果集,例如:

┌─────────┐
│ MyParam │
├─────────┤
│ A       │
│ B       │
│ C       │
│ Etc.    │
└─────────┘