SSRS报告中“可搜索”下拉列表中的默认列表

时间:2019-07-24 05:10:24

标签: dropdown ssrs-2012 searchable

我创建了一个下拉列表,该列表根据搜索框中显示的值进行过滤。 但是问题是直到我在“搜索”框中输入值,下拉列表处于禁用状态。 有什么方法可以让我默认在加载时获取整个列表,然后使用搜索框过滤列表。

1 个答案:

答案 0 :(得分:0)

这很简单。这是创建类似报告的步骤。

如果要严格遵循,则将需要WideWorldImporters示例数据库的副本,因为这就是我用作示例数据的地方。

以下报告仅列出了客户及其电话号码,列出的客户是基于客户的下拉列表,而该下拉列表是基于“搜索”参数的内容的。

要开始,请创建一个新的空白报告

添加一个名为pSearch的参数,设置Allow blank value ("")选项ON。在默认值标签中,选择Specify values,单击Add,但将“值”留为空白。这一点很重要... enter image description here enter image description here

接下来,添加一个名为dsCustomer的数据集。该查询会将数据提供给下拉列表,因此我们将基于刚刚设置的pSearch参数进行过滤。

数据集查询应如下所示。

SELECT CustomerID, CustomerName FROM [Sales].[Customers] 
WHERE 
    (CustomerName LIKE '%' + @pSearch + '%'
    OR      
    ISNULL(LEN(@pSearch),0)=0
    )
ORDER BY CustomerName

如果参数为空或为null,则将返回完整列表,否则将返回过滤列表。

接下来,创建一个名为pCustomers的参数,将Allow multiple values设置为ON。将可用值设置为Get values from a query,然后将其指向dsCustomer数据集。

enter image description here enter image description here

您现在可以测试参数,当报表首次打开时,客户列表将已满,但是如果您键入搜索参数,然后再次将客户列表放下,则会看到过滤列表。

这可能就是您所需要的,我完成了如下报告 创建另一个名为dsMain的数据集。这样会将数据提供给最终报告表,以便根据我们的pCustomers参数进行过滤。

数据集查询将类似

SELECT CustomerID, CustomerName, PhoneNumber FROM [Sales].[Customers] 
WHERE CustomerID IN (@pCustomers)
ORDER BY CustomerName

最后,我在报表中放置了一个表格并将其绑定到dsMain

最终报告如下所示,然后首先打开。

enter image description here

如果我在seearch参数中输入ala,然后再次将列表放下,我会看到。

重要:请记住,参数名称是Case Sensistive,因此名称必须与数据集查询完全匹配。

enter image description here

相关问题