如何在 SSRS 中添加基于搜索的多值参数?

How to add a search based multivalued parameter in SSRS?

我有一个 SSRS 报告,在多值参数的过滤器(参数不是 SSRS 过滤器)中有 10,000 条记录。因此,在参数的下拉列表中定位值要困难得多。我需要在报告中添加一个基于搜索的多值参数,以便于过滤。请指导我这样做或发短信给我任何其他可能的建议。

谢谢

您可以使用两个参数执行此操作。

假设您有一大堆客户名单。

在你的第一个参数中(我们称之为 cSearch)这只是一个纯文本参数,不是多值。

在你的第二个参数中使用类似

的数据集查询
SELECT CustomerID, CustomerName 
    FROM myCustomers
    WHERE CustomerName LIKE '%' + @cSearch + '%'

填写完第一个参数后,当您单击第二个参数时,它将仅填充匹配值。


编辑更详细的解释


为了进一步说明这一点,我整理了一份非常快速的报告来说明我的意思。如果这不是您想要的,那么请编辑您的问题,添加尽可能多的细节、设计的屏幕截图、您期望看到的模型、参数状态的所有排列等。

我为此使用了 Adventure Work LT 示例数据,以防您想遵循它。

创建新报告

创建一个新的数据集(如果需要作为数据源)

将数据集的查询设置为

  SELECT  CustomerID, CompanyName 
FROM [AdventureWorksLT2019].[SalesLT].[Customer] 
WHERE CompanyName LIKE '%' + @cSearch + '%'
ORDER by CompanyName

添加数据集时,将生成一个名为 cSearch 的新报告参数。

转到此参数的属性并执行以下操作

设置 Allow blank value ("") 将默认值设置为表达式 =""

这将在第一个报告 运行s 时将参数设置为空字符串。

接下来,添加另一个名为“pCustomers”的参数

将其设置为“允许多个值”

将可用值设置为您的数据集,select CustomerID 作为值字段,公司名称作为标签字段。

接下来将默认值设置为同一数据集,并再次选择 CustomerID 作为值字段。

现在,当您第一次 运行 报告时,cSearch 参数为空,因此所有公司名称都列在您的第二个参数中。

如果我们随后在搜索参数中键入“world”并按回车键,则会更新第二个参数值...