这篇 SSRS 文章展示了如何使用带参数的存储过程创建报表。例如,如果客户仅提供存储过程来设计报表,并且该存储过程接受参数值,那么我们可以使用此方法。
右键单击“数据集”文件夹以创建新的数据集。下面的屏幕截图显示了我们在本次 SSRS 带参数存储过程示例中使用的报表数据集。

USE [AdventureWorksDW2019] GO CREATE PROCEDURE [dbo].[SP_ProductCategorySales] @Category VARCHAR(100) AS BEGIN SET NOCOUNT ON; SELECT Cat.[EnglishProductCategoryName] AS Category, SubCat.[EnglishProductSubcategoryName] AS SubCategory, Prod.EnglishProductName AS ProductName, Prod.Color, 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 INNER JOIN DimProductSubcategory AS SubCat ON Prod.ProductSubcategoryKey = SubCat.ProductSubcategoryKey INNER JOIN DimProductCategory AS Cat ON SubCat.ProductCategoryKey = Cat.ProductCategoryKey WHERE Cat.[EnglishProductCategoryName] = @Category GROUP BY Cat.[EnglishProductCategoryName], SubCat.[EnglishProductSubcategoryName], Prod.EnglishProductName, Prod.Color END
如果您观察上面的 存储过程,它有一个带有 @Category 参数的 where 条件。转到“字段”选项卡以检查列,并在需要时重命名它们。
使用带参数的存储过程的 SSRS 报表
下面的屏幕截图显示了存储过程中可用的列以及自动创建的 Category 参数。接下来,要创建表报表,请右键单击空白区域,选择“插入”,然后选择“表”选项。我们设计了一个简单的按产品销售的表报表,并设置了字体和颜色格式。

如果您转到“SSRS 报表使用带参数的存储过程”的预览,它会显示一个用于输入类别的文本框。由于没有默认值,它显示一个空报表。
如果您输入 Clothing,它将显示属于 Clothing 的所有产品销售。

我将创建另一个数据集来获取不同的产品类别名称,以便我们可以将它们用作 @Category 参数的可用字段。
SELECT DISTINCT EnglishProductCategoryName
FROM DimProductCategory
双击 @Cateogry 以打开“报表参数属性”窗口。转到“可用值”选项卡,选择“从查询获取值”选项,然后使用下拉菜单选择数据集、值和标签字段。

现在,如果您转到报表预览,您将从下拉列表中看到存储过程参数值。
