SSRS 中的下拉列表参数允许用户从下拉列表中选择所需值,并使用用户指定的值过滤报表数据。或者,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 中的下拉列表参数
在开始创建 SSRS 下拉列表参数之前。让我们创建一个数据集,该数据集保存 [AdventureWorksDW2014] 中的 [DimGeography] 表的唯一国家名称。

我们在上面截图中使用的 SQL 命令是
SELECT [EnglishCountryRegionName] AS [Country] FROM [DimGeography]
要添加 SSRS 下拉列表参数,请在“报表数据”选项卡中的“参数”文件夹上右键单击,然后选择“添加参数.”

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

如果您创建普通报表参数,则可以单击“确定”完成配置,但对于下拉列表参数,我们必须选择“可用值”,如下图所示。
如果您可以手动指定值,则可以选择“指定值”选项并手动输入值。在此示例中,我们希望使用我们之前创建的国家名称数据集,因此选择“从查询获取值”选项并从列表中选择数据集。

请指定值字段和标签字段。在这里,我们只有一个列,所以两者都将是国家。
- 值字段:此值将发送到查询。报表将使用此值进行过滤。
- 标签字段:此值将显示给最终用户。

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

在此示例中,我们将显示 [国家名称] 等于我们刚刚创建的 [国家参数] 的记录,因此,请选择“国家”作为表达式,选择“Like Operator”作为运算符,选择参数名称作为值。
如果您在编写参数名称时遇到任何困难,请单击 fx 按钮。接下来,从 GUI 中选择参数名称。

单击“确定”完成数据集级别的 SSRS 下拉列表筛选器配置。让我们单击“预览”选项卡以预览数据。

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

为 SSRS 下拉列表参数添加默认值
如果您观察上面的屏幕截图,它在预览报表时显示空白报表,并要求我们首先选择值。显示空白报表对最终用户来说会很烦人。
要解决此情况,我们必须为 SSRS 下拉列表参数分配一个默认值。在此示例中,我们按如下所示的屏幕截图手动为参数输入“美国”作为默认值。

如果您现在预览报表,它将显示国家名称为美国的记录,而不是显示空白报表。它将允许我们通过下拉列表选择不同的值。

注意:SSRS 中的下拉列表参数对于一次从下拉列表中选择一个值非常有用。要使用多个值,请参阅 SSRS 多值参数 文章