2017-01-30 72 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條記錄,這對於用戶滾動瀏覽查找某個特定記錄來說太多了。 –