2013-04-03 145 views
4

我會盡量通過簡化報告結構來解釋問題。報告之一包含1個名爲ResourceCenter的組,然後是其中的一行總計。總計實際上是一個組,但分組是在SQL中完成的,並以詳細組的形式呈現。該報告看起來像這樣:如何將多個值傳遞給SSRS中的多值參數

Report 1 

ResourceCenter 1 
Total1 11 
Total2 4 
Total3 8 

ResourceCenter2 
Total1 12 
Total2 11 
Total3 6 

從這份報告,我需要鑽取到另一個具有一堆多值參數的報告。對於鑽取,我可以爲除EmployeeNumber之外的所有內容使用單個值。爲此,我需要能夠將EmployeeNumbers的列表傳遞給報告2中的多值參數。EmployeeNumbers當前不存在於報告1中的任何DataSet或參數中,但是基於ResourceCenter。因此,如果用戶運行了報告1並單擊了資源中心1,我需要能夠將與ResourceCenter 1關聯的EmployeeNumber列表傳遞給報告2中的多值參數,方式是報告2將正確處理它。

注意:我應該補充說我已經創建了兩個接受ResourceCenter輸入的SQL函數,然後返回一個員工列表。一個是返回一列EmployeeNumbers的表值函數。另一個是標量值函數,它返回EmployeeNumbers作爲逗號分隔值。然後我有一些自定義代碼在後臺運行SQL函數並返回列表。我還沒有成功返回SSRS可以使用的數據集,但是我已經能夠使標量值函數「工作」,因爲我可以在虛擬報告上創建一個字段並查看輸出。雖然我沒有得到報告2接受以逗號分隔的列表的任何好運。

回答

5

This person正在進行鑽取,似乎已解決了多值參數的類似問題。在這種情況下,它必須格式化爲IN子句。

=SPLIT(JOIN(Parameters!SomeParameterName.Value,","),",") 

如果報告2將不採取它在此格式下,你可能需要添加將接受一個逗號分隔的字符串,你接下來要分析一個獨立的單值參數。

+2

感謝您的回覆。我熟悉使用SPLIT/JOIN,但在這種情況下不起作用。我沒有要傳遞的參數或字段,只有可以傳遞的值才能派生出列表。 –

+0

您可能必須從分隔字符串中派生一個列表。 – criticalfix

+0

嗨。你能否詳細說明我如何才能做到這一點?我在原來的問題中添加了一個註釋,解釋了我迄今爲止的內容。這聽起來像我可能走在正確的道路上,但我需要一些幫助才能實現目標。 –