我不确定这在报表生成器中是否可能。我想在报表生成器报表中放置一个文本框,然后在数据库中搜索特定的人,并将其显示在子报表中。这可能吗?如果可能,你建议我怎么做?我试过在网上搜索,但没有成功。
这个部分将生成一个参数,用户可以在其中键入他们想要的任何内容
您需要将报表设置为使用参数。您可以通过手动输入或从预定义列表中选择,将这些参数设置为需要用户输入。
假设您使用SQL查询返回数据,则可以在数据集脚本中引用这些参数。例如,如果您有一个名为FirstName
的参数和另一个称为Surname
的参数,并且您只想在数据集中返回与这两个参数完全匹配的值,那么您可以这样引用这些参数:
select PersonID
,FirstName
,Surname
,OtherDetails
from PersonTable
where FirstName = @FirstName
and Surname = @Surname
如果您更喜欢"搜索"类型的函数,则可以使用SQLlike
运算符和通配符,但请记住,这可能会对您的查询性能产生非常不利的影响:
select PersonID
,FirstName
,Surname
,OtherDetails
from PersonTable
where FirstName like '%'+@FirstName+'%'
and Surname like '%'+@Surname+'%'
本部分向您展示如何更改该参数,使其提供下拉菜单此部件是可选的
如果要提供可供选择的可用选项列表,可以创建一个包含"可用值"列表的参数。这些可以由您自己手动键入(将它们硬编码到报告设计中),也可以通过基于第二个数据集的参数使它们成为数据驱动。
要获得该人员列表,您需要返回您要查找的人员的ID以及对最终用户友好的详细信息,以便在报告中可见:
-- select distinct so we have no duplicates
select distinct PersonID as Value -- Value is what is used to the query. This ideally will be a uniquye identifier
,FirstName
+ ' '
+ Surname as Label -- Label is what the user sees. This can be a bit more verbose and detailed
from PersonTable
order by Surname -- Specify how you want the options ordered
,FirstName
如果通过在参数选项中选择Get Values From A Query
将此数据集设置为源,则在运行报告时会显示下拉列表。然后,用户可以选择一个,单击Run Report
,并让他们的选择影响返回的数据。