2014-02-06 25 views
0

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

+0

的可能的复制[SSRS 2008 - 子报表从多值参数的每个值](https://stackoverflow.com/questions/12459092/ssrs-2008 -subreport-for-each-value-from-multi-valued-parameter) – Matt

回答

0

我终于在挣扎了几天后找到了解决方案on another stackoverflow post

再现在这里:

要做到这一点,你就必须把报表到一个列表或表矩阵。据我所知,没有简单的方法让该列表或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. │ 
└─────────┘ 
0

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

+0

我不认为你可以直接将主报表中的参数绑定到子报表对象上。无论如何,我不能。 – Fahad