这篇 SSRS 文章展示了如何允许将 NULL 值作为报表参数。默认情况下,参数不接受 null 值,要实现这一点,我们需要勾选“允许 null 值”选项。
例如,如果您有一个产品类别列,每个产品代表一个不同的类别,有几行没有类别名称(NULLS)。如果想将“类别”列用作报表参数,默认情况下,报表服务不会显示具有 NULL 值的行。右键单击“数据集”文件夹以创建新的数据集。在 SSMS 中编写以下代码,可以显示我们用于此示例的数据集。
SELECT Prod.EnglishProductName AS ProductName, Prod.Color, Prod.Class,
SUM(Fact.OrderQuantity) AS Orders, SUM(Fact.TotalProductCost) AS ProductCost,
SUM(Fact.SalesAmount) AS Sales, SUM(Fact.TaxAmt) AS Tax
FROM FactInternetSales AS Fact
INNER JOIN DimProduct AS Prod ON Fact.ProductKey = Prod.ProductKey
GROUP BY Prod.EnglishProductName, Prod.Color, Prod.Class
如何允许将 Null 值作为 SSRS 报表参数值?
我们创建了另一个包含不同类别记录的数据集,以便将其用作参数的可用值。此 ClassDSet 数据集的查询是
SELECT DISTINCT Class FROM DimProduct
我们设计了一个简单的产品销售表格报表,并设置了字体和颜色格式。

报表预览在“类别”列下显示了一些空行。

右键单击“参数”文件夹并选择“添加参数”选项以打开以下窗口。添加适当的名称和提示文本。请记住勾选“允许 Null 值”选项以将 null 值作为 SSRS 报表参数接受。

转到“可用值”选项卡,然后选择“从查询获取值”。接下来,选择我们之前创建的数据集以获取不同的类别名称,并将类别名称选择为值字段和标签字段。

双击主数据集,转到“筛选器”选项卡,然后单击“添加”按钮以添加筛选器。在此,我们通过下拉列表选择类别列作为表达式。接下来,我们保留默认的“等于”运算符,然后单击“值”旁边的 ƒx 按钮来编写表达式。
双击类别参数进行添加。此筛选器限制报表预览显示类别名称等于 @class 参数值(用户选择)的记录。

现在您可以看到 Null 参数,显示或允许 SSRS 表格报表中类别值为空或 Null 的所有记录。

我选择“非 Null”值。

如果您在报表参数常规属性(参见此前的第四张图片)下取消选中“允许 Null 值”选项,则在“类别”参数下拉列表中将看不到“Null”选项。