2012-04-25 80 views
1

任何人都可以告訴我如何在這裏使用SSRS參數嗎?我使用SSAS作爲數據源,報告顯示一切正常,但我想根據參數值篩選結果。以SSAS作爲數據源和參數的SSRS

SELECT NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS, NON EMPTY { (STRTOMEMBER(@Region,CONSTRAINED) * [Query].[State].[State].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Model] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

參數是報告中的@Region。

回答

3

最簡單的方法是,當您設置您的DataSet時,使用QueryDesigner從SSAS中撤回所需內容。當您指定尺寸過濾器時,在最右邊是「參數」標題下的複選框。選中它,它會自動爲您生成SSRS參數。

這將創建一個參數期待像下面這樣,這實際上是一個維度篩選器的值:

\[DimensionName\].\[AttributeName\].&\[Value\] 

如果您需要通過MDX做手工不過,看你的MDX表達式,它看起來對我來說(在我非常有限的MDX經驗中 - 仍在學習)你試圖在你的ROWS中指定你的參數(過濾器),而不是在FROM子句中應用它。

我預計它可能是更喜歡這個?:

SELECT 
NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS 
,NON EMPTY { ([DimensionName].[AttributeName].ALLMEMBERS * [Query].[State].[State].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
(SELECT (STRTOSET(@Region,CONSTRAINED) ON COLUMNS FROM [Model]) 
WHERE (IIF(STRTOSET(@Region, CONSTRAINED).Count = 1, STRTOSET(@Region, CONSTRAINED), [DimensionName].[AttributeName].currentmember)) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

從您的多維數據集定義與實際值更換DimensionName爲AttributeName。這假設您的@Region參數格式與上面指定的格式相同。如果不是這樣,那麼在將報表參數分配給DataSet時,可以用DataSet屬性中的其餘語法替換它。

如果這不起作用,我表示道歉,目前我正在掌握有限的MDX知識,但我認爲部分答案總比沒有答案好,對吧?

+0

感謝您的幫助,但是當我手動操作時,我在MDX查詢中出現錯誤「區域層次結構已經出現在Axis1軸中 – user1284460 2012-04-25 17:50:13

+0

從來沒有錯,當我使用數據集設置它工作。 – user1284460 2012-04-25 17:58:03

+0

沒問題,我很高興它幫助你到達那裏! – GShenanigan 2012-04-25 18:07:43