SSRS 多值参数允许用户从列表中选择多个值,并使用用户选择的值来过滤报表数据。或者,多值参数使用户能够动态地使用多个值来过滤报表。
在本文中,我们将通过一个示例向您展示如何在 SSRS 中添加多值参数。我们将使用下面显示的报表来解释表格报表中的多值参数筛选。请参阅 表格报表 文章,以了解 SSRS 表格报表的创建。
如果您看到下面的截图,这是一个普通的表格报表,包含国家、全名、职业、年收入和销售额列。

下面的截图将向您展示我们用于此 SSRS 多值参数报表的 共享数据源 和 数据集。

我们在上面的屏幕截图中使用的 SQL 命令是
SELECT Geo.[EnglishCountryRegionName] AS [Country]
,Geo.[StateProvinceName] AS [State]
,Geo.[City]
,Cust.FirstName +' '+ Cust.LastName AS [Full Name]
,Cust.EnglishEducation AS Education
,Cust.EnglishOccupation AS Occupation
,SUM(Cust.YearlyIncome) AS YearlyIncome
,SUM(Fact.SalesAmount)AS SalesAmount
FROM DimCustomer AS Cust
INNER JOIN
FactInternetSales AS Fact ON
Cust.CustomerKey = Fact.CustomerKey
INNER JOIN
[DimGeography] AS Geo ON
Cust.GeographyKey = Geo.GeographyKey
GROUP BY Geo.[EnglishCountryRegionName]
,Geo.[StateProvinceName]
,Geo.[City]
,Cust.FirstName
,Cust.LastName
,Cust.EnglishEducation
,Cust.EnglishOccupation
ORDER BY [Country]
添加 SSRS 多值参数筛选
在我们开始创建多值参数之前,让我们从 [AdventureWorksDW2014] 中的 [DimGeography] 表中创建一个包含不同国家名称的另一个数据集。

我们在上面截图中使用的 SQL 命令是
SELECT [EnglishCountryRegionName] AS [Country] FROM [DimGeography]
右键单击“报表数据”选项卡中存在的“参数”文件夹将打开上下文菜单,从中选择“添加参数..”选项。

单击“添加参数..”选项后,将打开一个名为“报表参数属性”的新窗口来配置参数属性。
- 名称:请根据您的要求指定一个有效的参数名称。在此,我们将其定义为 CountryParameter。
- 提示:您在此处指定的文本将作为文本框之前的标签显示。
- 数据类型:国家名称是文本数据类型。因此,我们保持默认文本不变。
- 允许多值:如果您想允许用户选择多个值,请勾选此选项。

接下来,我们需要选择可用值,如下图所示。如果您可以手动指定值,可以选择“指定值”选项并手动输入值。
在此 SSRS 多值参数示例中,我们想使用我们之前创建的国家名称数据集。因此,选择“从查询获取值”选项,然后从列表中选择数据集。

请指定值字段和标签字段。此处只有一个列,因此两者都将是国家。
- 值字段:此值将发送到查询。报表将使用此值进行筛选。
- 标签字段:此值将显示给最终用户。

单击“确定”完成多值参数的配置。现在,我们需要对数据集应用筛选条件。请参阅 数据集级别的筛选 文章,以了解筛选器的创建。
从“报表数据”选项卡中选择数据集,然后右键单击它将打开上下文菜单。请从中选择“数据集属性..”选项。

在此 SSRS 多值参数示例中,我们将显示其国家存在于 [Country Parameter] 中的记录。因此,请将国家选择为表达式,运算符选择为 SQL IN 运算符,值为参数名称。
如果您在编写参数名称时遇到困难,请单击 fx 按钮并从 GUI 中选择参数名称。

单击“确定”完成在数据集级别配置多值参数筛选。让我们单击“预览”选项卡来预览数据。

从上面的屏幕截图中可以看到,它显示了一个空白报表,允许我们从我们创建的数据集中存在的所有国家名称列表中选择多个值。要显示记录,我们必须从列表中选择国家名称,然后按 Enter 键。
目前,我们选择了加拿大和德国作为国家名称。
