2012-12-05 47 views
3

我在報表之間使用multivalue參數時遇到問題。將多值參數傳遞給子報表

我有一個主要的報告,我已經定義了一個多值參數,我用它來運行SQL查詢來填充它的數據集。該參數在WHERE子句中以下列方式使用:

WHERE values IN (@parameter) 

它工作正常,它檢索預期數據。

然後,這個主要報告將此參數傳遞給子報表。該參數也被定義爲子報表中的多值,並且就我可以在參數的下拉列表中看到的那樣,它以正確的方式接收值。就像這樣:A,B,C

問題是填充子報表數據集的查詢什麼也沒有返回。 它也有在主報告中定義爲一個WHERE子句(這已經是工作)

WHERE values IN (@parameter) 

如果我手動運行查詢,硬編碼值是這樣的:

WHERE values IN ('A', 'B', 'C') 

它的工作原理,但是當我嘗試使用它沒有的參數時。所以,它在某種程度上失去了格式或價值。

我試圖在報表的數據集定義,這是在另一個線程提出的這個解決方案:

=join(Parameters!<your param name>.Value,",") 

但它不爲我工作,該數據集仍然是空的。

關於我失蹤的任何想法?

謝謝! :)

回答

3

剛剛從頭開始創建報告,它的工作。我一定忘記了中間的東西。

無論如何,萬一有人需要它,主報告和子報告中的兩個參數必須定義爲多值。 然後在您的查詢,你應該在你的WHERE化酶使用IN,像這樣:

WHERE field IN (@parameter) 

,並沒有別的需要。我並不需要做到以下幾點:

=join(Parameters!<your param name>.Value,",") 

它只是爲我工作

6

這應該「只是工作。」確保子報表中的參數設置爲多值,並且我通常使用與父報表完全相同的查詢來提供「可用值」。

檢查您是否將整個參數傳遞給子報表:在父報表的子報表屬性中,參數值應爲[@MyParamName]而不是<<Expr>>。如果它讀取爲後者,編輯表達式並確保它最後沒有(0)。但=Parameters!MyParamName.Value是正確的,不是=Parameters!MyParamName.Value(0)

+0

你是對的,這應該「只是工作」,但它沒有。所以,我刪除了報告,並從零開始創建它,它工作。顯然我一定已經忘記了中間的東西。無論如何,謝謝你的回答 – monican

1

我想我知道你做了什麼,因爲我在這裏通過繪製有同樣的問題。 子報告是建立正常,但在進入參數父報表綁定時,該Value下拉沒有提供我的參數,所以我用表達式生成器來選擇它。這左邊的灰色<<Expr>>標誌物的價值,只當我有從列表中選擇只有一個值工作。當我換成這與[@MyParam]它工作得很好,無論選擇的值的數量。當我看了一下值表達式生成器創造了一個有點接近它有=Parameters!MyParam.Value(0)。刪除(0)也修復它。

相關問題