我不确定报表生成器中是否可以这样做。我想在报表生成器报表中放置一个文本框,然后在数据库中搜索特定人员并在子报表中显示该文本框。这是可能的,如果是这样,你会怎么建议我这样做?我尝试在线研究它没有成功。
答案 0 :(得分:0)
您需要设置报告以使用参数。您可以将这些参数设置为要求用户输入手动输入或从预定义列表中选择。
假设您使用SQL查询返回数据,则可以在数据集脚本中引用这些参数。例如,如果您有一个名为FirstName
的参数和另一个名为Surname
的参数,并且您只想在数据集中返回完全匹配的值,则可以像这样引用这些参数:
select PersonID
,FirstName
,Surname
,OtherDetails
from PersonTable
where FirstName = @FirstName
and Surname = @Surname
如果您希望使用更多“搜索”类型函数,可以使用SQL like
运算符和通配符,但请记住,这可能会对查询性能产生非常不利的影响:
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
并使其选择影响返回的数据。