将参数从主报表传递到子报表

时间:2014-03-26 12:15:37

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

以下是我的Tablix /矩阵的示例以及应该发生的一些示例。我在第二个报表设置中有参数接受值,在主报表中我刚刚选择了它应该传递的字段。由于它是一个矩阵并被分组,我想如果你点击一个子总行,它会知道哪个值与该行有关。

enter image description here

以下示例定义了应该发生的事情:

1.当我点击B3(美国)单元格时,它会传递位置名称,即美国和客户名称,即ABC作为子报告的参数。

2)。当我点击B5单元格即子总数时,它会将两个位置,即美国,迪拜和客户名称ieabc作为参数发送到子报告。

3)。当我点击B10单元格即Grand Total时,它会将所有客户名称作为参数发送到子报告中。

谢谢

2 个答案:

答案 0 :(得分:4)

我就是这样做的。对于小计链接,为位置参数传递“ALL”,为客户参数传递=Fields!.Customer.Value。对于Grand Total链接,为两个参数传递“ALL”。然后更新您的子报告查询Where子句:

Where
    (Customer = @Customer or @Customer = 'ALL')
    and (Location = @Location or @Location = 'ALL')

当相应的参数设置为“ALL”时,这将返回所有客户/位置记录。

如果您需要更多详细信息,请与我们联系。

答案 1 :(得分:2)

我不认为你可以单独使用SSRS来实现你想要的实例2和3。

我会在数据集中派生新列来保存您想要传递的连接参数字符串。对于您的示例2,此列可能称为Customer_Locations,其值为“USA | Dubai”。我将使用子报表参数定义中的SSRS拆分功能将该值传递给子报表中的多值参数。重要的是所选分隔符不会出现在可能的位置值中。

对于该Customer的所有行,数据集的每一行都会重复相同的值。

例如3,我会再添加2列,例如Customer_Locations_Grand_Total =“USA | Dubai”和Customers_Grand_Total =“ABC | CDE”。所有行都会重复这些相同的值。