reporting-services - 如何在 SSRS 中添加基于搜索的多值参数?
问题描述
我有一个 SSRS 报告,它在一个多值参数的过滤器(参数不是 SSRS 过滤器)中有 1 万条记录。因此,在参数的下拉列表中定位值要困难得多。我需要在报告中添加一个基于搜索的多值参数以简化过滤。请指导我这样做或给我发任何其他可能的建议。
谢谢
解决方案
您可以使用两个参数来执行此操作。
假设您有一个很大的客户名称列表。
在您的第一个参数(我们称之为 is 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 ("")
on 设置为表达式的默认值=""
这将在报表首次运行时将参数设置为空字符串。
接下来,添加另一个名为“pCustomers”的参数
将此设置为“允许多个值”
将可用值设置为您的数据集,选择CustomerID
作为值字段,选择公司名称作为标签字段。
接下来将默认值设置为相同的数据集,并再次选择 CustomerID 作为值字段。
现在,当您第一次运行报告时,该cSearch
参数为空,因此所有公司名称都列在您的第二个参数中。
如果我们在搜索参数中输入“world”并按下回车,第二个参数值就会更新......
推荐阅读
- android - 使用 agora.io 进行视频通话的空白屏幕
- python - 使用theano作为keras的后端,还报TypeError?
- cmake - 如何创建 .cmake 文件
- python - lstrip() 方法如何从左侧删除字符?
- c++ - 如何浏览文件中的图像?
- vue.js - 如何使生成的 NUXT 应用程序 index.html 中的路径相对?
- kotlin - Kotlin 脚本:跨目录/包导入类
- r - 从等时对象的 st_intersection 创建 Shape 文件时出错
- php - PHP apcu_clear_cache:它是用户特定的,如果是,如何绕过它?
- reactjs - 回调函数传下来太多层级变成“不是函数”