2009-10-27 25 views
0

我在嘗試將我們最簡單的一個報告轉換爲Reporting Services。更新參數選擇

最初的excel報告使用一個結果調用幾個存儲過程來構建下一個數據時的結果。

我目前有2個數據集都調用存儲過程。

第一個叫做GetGlobalCustomers。這將填充返回每個數據庫連接信息的結果集(我們已將每個客戶的數據庫分割)並返回字段ID,Name,CustomerServer

第二個名爲GetSchedules需要GetGlobalCustomers提供的服務器和名稱來查詢正確的數據庫。

但是,我只想按名稱選擇客戶,而不是個人服務器/名稱(記住哪個客戶在哪個服務器上,以及他們的數據庫名稱幾乎不可能)。

所以我有一個名爲CustomerName的參數,推到參數列表的頂部,它向用戶顯示客戶首先選擇的值爲ID。我也有兩個參數叫做DBServerDBName。我如何設置DBServerDBName取決於所選客戶?似乎沒有明顯的手段。

我猜測它需要成爲可用值和指定值的一部分,但我無法弄清楚如何說「對於此客戶使用此數據庫/名稱」ID。我想我可以通過創建兩個額外的數據集來執行通過ID查詢選擇dbserver/dbname,但如果我需要這樣做,每次我想按參數選擇,我將有數十個數據集。

回答

0

你可以這樣做,雖然你的數據源有一個警告:你不能使用共享數據源。

在這種情況下,數據源連接字符串可以包含參數。例如:

=「Data Source =」+ Parameters!P_Environment.Value +「; Initial Catalog = MyDB;」

您說的必須是可用值的一部分纔是正確的。一種可能性是讓客戶參考將傳遞給數據源的完整連接字符串。因此,在這種情況下,您將有一個參數,它將客戶名稱顯示爲參數文本,將連接字符串顯示爲值。

+0

我想你誤會了我(或者我沒有足夠好地解釋自己)。我有一個包含全局信息的數據庫。這有一個所有數據庫及其位置的列表。這可通過GetGlobalCustomers訪問,以檢索後續查詢中使用的服務器/名稱。據我所知,我不需要更改數據源,因爲實際的Store Procedure使用參數來定位正確的數據庫。 目前我正在傳遞數據庫的ID,並使用名稱/服務器對的主表中的選擇,這是非常低效的。 – 2009-10-28 15:14:46