每行不同的钻取

时间:2017-04-28 12:54:25

标签: sql-server reporting-services ssrs-2008-r2

我有一份SSRS报告,其中有几个级别的向下钻取。数据汇总为顶级视图,但我需要根据其中一列的类型显示不同的向下钻取报告。

例如:

表1 - 苹果

Name     Cost
Fuji     1.5
Gala     3.5

表2 - 南瓜

Name        Cost
Pumpkin     2
Gourd       4.5

我有一个存储过程聚合这些并将它们放在一个表中,以显示顶级报告。即:

Name         Cost     ItemType
Apples       5        1
Squashes     6.5      2

实际上,这两个表有不同的列,我需要在钻取报告中显示。是否可以查看ItemType列并深入查看两个子报告中的一个,具体取决于它的值?

2 个答案:

答案 0 :(得分:1)

您可以在子报表中添加ItemType作为参数。然后从主报告中链接或跳转到子报告并传递参数配置选项卡中的Fields!ItemType.Value

答案 1 :(得分:1)

如果您需要在两个或更多个不同的子报告之间进行选择,请将文本框上操作的ReportName属性设为这样的表达式。

=IIF(Fields!ItemType.Value = 1, "subReport_Apples", "subReport_Oranges")

如果你有一把以上的SWITCH可能会更好

= SWITCH (
          Fields!ItemType.Value = 1, "subReport_Apples",
          Fields!ItemType.Value = 2, "subReport_Oranges",
          Fields!ItemType.Value = 3, "subReport_Lemons",
          True, "subReport_AnythingElse"
)

如果您有很多项类型,请考虑将子报告的名称添加到数据库,从而创建包含ItemTypesubReportName的新表。然后,您可以在查询中加入此项并获取实际的子报表名称。然后,文本操作的ReportName属性将只是Fields!SubReportname.Value