如何在下拉列表中添加默认列表,然后使用我的搜索输入在 SSRS 报告中过滤该列表
How can I add Default list in dropdown then use my search input to filter that list in SSRS Report
我创建了一个下拉列表,该列表根据搜索框中的值进行过滤。
但问题是,直到我在搜索框中输入值,下拉列表才处于禁用状态。
有什么方法可以在加载时默认获取整个列表,然后使用我的搜索框来过滤列表。
这很容易做到。以下是创建类似报告的步骤。
如果您想完全遵循,那么您将需要 WideWorldImporters 示例数据库的副本,因为我将其用作示例数据。
以下报告仅列出了客户及其 phone 号码,列出的客户基于客户下拉列表,而该下拉列表基于 'search' 参数的内容.
首先,创建一个新的空白报告
添加名为 pSearch
的参数,设置 Allow blank value ("")
选项 ON
。在默认值选项卡 select Specify values
中,单击 Add
但将值留空。这点很重要...
接下来,添加一个名为 dsCustomer
的数据集。此查询会将数据提供给下拉列表,因此我们将根据刚刚设置的 pSearch
参数进行过滤。
数据集查询应如下所示。
SELECT CustomerID, CustomerName FROM [Sales].[Customers]
WHERE
(CustomerName LIKE '%' + @pSearch + '%'
OR
ISNULL(LEN(@pSearch),0)=0
)
ORDER BY CustomerName
如果参数为空或为空,这将 return 完整列表,否则将 return 过滤列表。
接下来,创建一个名为 pCustomers
的参数,将 Allow multiple values
设置为 ON
。将可用值设置为 Get values from a query
并将其指向 dsCustomer
数据集。
您现在可以测试该参数,当报告首次打开时,客户列表将是完整的,但如果您输入搜索参数,然后再次下拉客户列表,您将看到经过过滤的列表。
这可能就是你需要的,我完成报告如下
创建另一个名为 dsMain
的数据集。这会将数据提供给最终报告 table,因此它将根据我们的 pCustomers 参数进行过滤。
数据集查询类似于。
SELECT CustomerID, CustomerName, PhoneNumber FROM [Sales].[Customers]
WHERE CustomerID IN (@pCustomers)
ORDER BY CustomerName
最后我在报表里放了一个table绑定到dsMain
最终报告如下所示,然后首先打开。
如果我在搜索参数中输入 ala
并再次下拉列表,我会看到这个。
重要 请记住,参数名称区分大小写,因此名称必须与您的数据集查询完全匹配。
我创建了一个下拉列表,该列表根据搜索框中的值进行过滤。 但问题是,直到我在搜索框中输入值,下拉列表才处于禁用状态。 有什么方法可以在加载时默认获取整个列表,然后使用我的搜索框来过滤列表。
这很容易做到。以下是创建类似报告的步骤。
如果您想完全遵循,那么您将需要 WideWorldImporters 示例数据库的副本,因为我将其用作示例数据。
以下报告仅列出了客户及其 phone 号码,列出的客户基于客户下拉列表,而该下拉列表基于 'search' 参数的内容.
首先,创建一个新的空白报告
添加名为 pSearch
的参数,设置 Allow blank value ("")
选项 ON
。在默认值选项卡 select Specify values
中,单击 Add
但将值留空。这点很重要...
接下来,添加一个名为 dsCustomer
的数据集。此查询会将数据提供给下拉列表,因此我们将根据刚刚设置的 pSearch
参数进行过滤。
数据集查询应如下所示。
SELECT CustomerID, CustomerName FROM [Sales].[Customers]
WHERE
(CustomerName LIKE '%' + @pSearch + '%'
OR
ISNULL(LEN(@pSearch),0)=0
)
ORDER BY CustomerName
如果参数为空或为空,这将 return 完整列表,否则将 return 过滤列表。
接下来,创建一个名为 pCustomers
的参数,将 Allow multiple values
设置为 ON
。将可用值设置为 Get values from a query
并将其指向 dsCustomer
数据集。
您现在可以测试该参数,当报告首次打开时,客户列表将是完整的,但如果您输入搜索参数,然后再次下拉客户列表,您将看到经过过滤的列表。
这可能就是你需要的,我完成报告如下
创建另一个名为 dsMain
的数据集。这会将数据提供给最终报告 table,因此它将根据我们的 pCustomers 参数进行过滤。
数据集查询类似于。
SELECT CustomerID, CustomerName, PhoneNumber FROM [Sales].[Customers]
WHERE CustomerID IN (@pCustomers)
ORDER BY CustomerName
最后我在报表里放了一个table绑定到dsMain
最终报告如下所示,然后首先打开。
如果我在搜索参数中输入 ala
并再次下拉列表,我会看到这个。
重要 请记住,参数名称区分大小写,因此名称必须与您的数据集查询完全匹配。