使用 SSRS 2008 R2 并想知道是否可以为多值参数中选择的每个值生成子报告?
假设您有一个多值参数“parameterA”,其中选择了四个值(Value1、Value2、Value3 和 Value4)。我想为这些值中的每一个生成子报告(将值作为单个参数传递)。当然,我可以更改处理多值参数的过程,但由于性能和缓存的原因,我真的不想这样做。
感谢您的任何建议。
使用 SSRS 2008 R2 并想知道是否可以为多值参数中选择的每个值生成子报告?
假设您有一个多值参数“parameterA”,其中选择了四个值(Value1、Value2、Value3 和 Value4)。我想为这些值中的每一个生成子报告(将值作为单个参数传递)。当然,我可以更改处理多值参数的过程,但由于性能和缓存的原因,我真的不想这样做。
感谢您的任何建议。
为此,您必须将子报表放入列表或 tablix 中。据我所知,没有简单的方法让该列表或 tablix 迭代多值参数中的值。它只会接受一个数据集。
因此,我能想到的唯一解决方法是将参数拆分为数据集中的一组行,这对于 SQL 来说是可能的,但并非易事。但是,如果参数的可用值来自数据集,情况会有所改善:您只需将 tablix/list 连接到数据集并过滤参数中未选择的项目。
编辑:通过将数据集查询构建为表达式, 我找到了一个稍微笨拙的解决方案,将多值参数扩展到数据集。假设一个参数@MultiParamX
,这个表达式将创建一个查询,在一个列中输出所有选定的值:
="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. │
└─────────┘