2014-03-07 45 views
0

我有一個2005年的SSRS報告,我想添加一個參數。該參數將由一組郵編組成,但在列表中被選爲單個項目。如何在SSRS中創建列表作爲參數?

例如,我想有5個郵政編碼爲列表中的一個選擇和3再等等:

Select 11111,22222,33333,44444,55555,66666 AS Boondock 
Select 77777,88888,99999 AS Timbuck 
Select Zip Codes NOT IN (11111-99999) AS Everything Else 


所以我在下拉列表中選擇應該是:
處刑
Timbuck
其他所有內容

任何人都可以幫我解釋如何創建這個參數嗎?

回答

0

這裏最簡單的解決辦法可能是使用你的數據集,名爲LocationDescription計算字段,例如:

=SWITCH(Fields!ZipCode >= 11111 and Fields!ZipCode <= 66666, "Boondock", Fields!ZipCode >= 77777 and Fields!ZipCode <= 99999, "Timbuck",True, "Everywhere Else") 

末獨行真正的語句是由於開關式閱讀左TO-一旦它將其中一個開關評估爲TRUE,則退出。通過這種方式,您的ZipCodes表格中的每個項目都會以TRUE結果結束。

我假設你正在評估一系列ZipCodes,而不是11111,22222等的確切值?如果是這樣,交換機將有更多的價值。如果你想得到確切的答案,你的數據樣本將會有所幫助。

一旦你建立你的計算字段,然後你可以設置一個參數(稱爲@LocationParameter)根據您的LocationDescription字段的查詢可用值,那麼就使用過濾數據集:

表達: !=字段LocationDescription

操作:=

值: @LocationParameter

(如果你想多選在你的參數上,將操作員改爲IN)

希望有幫助。

+0

感謝您的信息。不幸的是,我不認爲我可以使用開關,因爲我正在評估確切的郵政編碼值,因此11112不會在該地區被認爲是Boondock。或者我只是使用= SWITCH(Fields!ZipCode = 11111或22222或33333等,「Boondock」,... – user2233506

+0

我寫的開關將評估任何Zip爲11111和66666之間的Boondock,因此將包括11112。您可能需要CDbl ZipCode字段,以便將其作爲數字正確評估(如果您已在數據庫中以文本的形式輸入該字段)。 – user2274903

+0

對不起,我明白你的意思了。 11112不應該被歸類爲Boondock。在這種情況下,是使用你提到的OR選項。你將不得不顯式編寫Fields!ZipCode =每個值。 – user2274903

1
  1. 創建一個簡單的字符串參數以呈現給用戶。我們稱之爲ZipCodeSet
  2. 創建一個數據集,檢查@ZipCodeSet參數並返回相應的郵政編碼列表。稱它爲ZipCodeSelection
  3. 創建一個使用ZipCodeSelection作爲其可用值和默認值的內部多值參數。稱它爲SelectedZipCodes
  4. 在報告的數據集中使用SelectedZipCodes