2017-01-30 77 views
0

我不确定这是否可以在Report Builder中使用。我想在报告生成器报告中放置一个文本框,然后在数据库中搜索特定人员并在子报告中显示该报告。这是可能的,如果是这样,你会建议我怎么做?我试图在网上搜索它没有成功。在Report Builder 3.0中搜索数据库

+2

你的问题没有意义。你是说你希望用户能够键入一个值,然后打开一个包含搜索值详细信息的子报告? – iamdave

+0

听起来像你想使用参数,虽然很难准确理解你在这里想要什么。 – 3N1GM4

+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 '%'[email protected]+'%' 
    and Surname like '%'[email protected]+'%' 

本部分介绍如何更改该参数,以便提供下拉菜单。 这部分是可选的。

如果您想要提供可供选择的选项列表,您可以创建一个具有“可用值”列表的参数。这些可以由您自己手动输入 - 将其严格编码到报表设计中 - 或者可以通过将参数基于第二个数据集来驱动数据。

要得到的人列表中,你会想返回是最终用户友好的是在报告中看到你正在寻找的人的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,并选择他们的选择影响返回的数据。

+0

谢谢你的建议。还有一个问题。 Report Builder 3.0中是否有某些功能可以让用户输入值,然后从中运行查询?我不想使用参数下拉菜单,因为选择时间很长。我想使用类似文本框的东西,但是当我尝试它时,不会让我输入框。 –

+0

这就是我的答案的前半部分。如果你告诉它,一个参数只提供一个项目列表,例如:通过给它一个列表或附加到一个数据集,就像我在答案的第二部分所做的那样。如果你只有一个名为'@ FirstName'的参数没有选项,用户可以输入任何他们想要的参数,这个值将在你的查询中使用,如上所述。试一下,看看这一切是否合理。 – iamdave

+0

它是完全有道理的。我在Report Builder中寻找某种方法来让用户键入类似于名称的内容,然后查询进入数据库并找到我想要为该实体显示的信息。我试图做的一个数据库有大约220,000条记录,这对于用户滚动浏览查找某个特定记录来说太多了。 –