如何将值作为参数从主报表传递到子报表

时间:2015-05-06 21:28:03

标签: reporting-services subreport

我有一个报告(存储过程),它返回A,B,C,D,E列。

我检索的数据示例:

A                 B         C              D           E
Minnessota        Name1     Oracle         Other data  Other data 
Minnessota        Name1     Microsoft      Other data  Other data
Florida           Name2     Napster        Other data  Other data
Washington        Name3     Stackoverflow  Other data  Other data

在这份报告中,我有一份子报告。此子报告使用表中的数据。我们称之为表Z。

SELECT * FROM Z

当主报告运行时,我需要将3个参数传递给子报告。

参数是主报告的A,B和C列的不同值。

如何设置子报告,以便在主报告运行时,A,B和C的不同作为参数传递给子报告?

所以不是SELECT * FROM Z,而是

SELECT * FROM Z WHERE Column1 = A AND Column2 = B and Column3 = C

1 个答案:

答案 0 :(得分:0)

您必须创建3个多值参数,并为它们设置源查询,如下所示。

SELECT DISTINCT [A] FROM [TABLE] WHERE ....

SELECT DISTINCT [B] FROM [TABLE] WHERE ....

SELECT DISTINCT [C] FROM [TABLE] WHERE ....

WHERE子句中添加任何其他条件(参数)。

接下来,对于子报表,保持数据集查询不变,但改为添加3个过滤器。

使用以下命令在参数中包含以逗号分隔的值列表:

Join(Parameters!Param1.Value, ",")

那将进行必要的过滤。有关其他帮助,请参阅herehere