这篇 SSRS 文章展示了如何创建报表参数并执行通配符搜索,以过滤表格数据,并附有示例。
右键单击 Datasets 文件夹以创建新的 DataSet。在 SSMS 中编写以下代码,将显示我们在此报表参数通配符示例中使用的数据集。
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 Prod.EnglishProductName = @Product
GROUP BY Cat.[EnglishProductCategoryName], SubCat.[EnglishProductSubcategoryName],
Prod.EnglishProductName, Prod.Color
ORDER BY OrderDate
SSRS 报表参数通配符搜索
右键单击 Parameters 文件夹并选择 Add Parameter 选项以打开以下窗口。将 Product 命名,并将 Enter product Name 作为提示文本。

双击 CatDSet(主数据集)并转到 Filters 选项卡以添加筛选器。我们选择 Product Name 作为表达式,使用 Like 运算符。接下来,单击 ƒx 按钮,在两侧添加带有 * 运算符的参数值。这里的 * 起通配符的作用。单击 OK 关闭 Expression 和 Dataset Properties 窗口。
=“*” & Parameters!Product.Value & “*”

SSRS 参数通配符搜索的最终报表是。

在报表预览中,如果我们输入 Bike,它将返回所有产品名称中包含 Bike 的行(无论其位置如何)。

当我输入 Mountain 时,它会返回产品名称包含 Mountain 的所有行。

要获取以 Bikes 结尾的产品,请将表达式更改为如下所示,然后输入 Bikes
=“*” & Parameters!Product.Value
以 Bikes 开头的产品
=Parameters!Product.Value & “*”
如果要在查询级别执行此操作,可以将参数值与两侧的 % 符号连接起来。因此,创建一个新的报表,其中包含以下 DataSet 代码和设计表格以查看预览。
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 Prod.EnglishProductName = '%' @Product + '%'
GROUP BY Cat.[EnglishProductCategoryName], SubCat.[EnglishProductSubcategoryName],
Prod.EnglishProductName, Prod.Color
ORDER BY OrderDate