這篇小文章的來源是 天善問答,比如在報表中要根據點擊某一個成員名稱然后作為參數傳遞給自身報表或者下一張報表,這個在普通的 SQL 查詢中沒有任何問題。但是在 MDX 中查詢是有區別的,比如在 MDX 中顯示在報表上的結果是 Category 下的一個分類 Bikes,但是當點擊了 Bikes之后把 Bikes 作為參數傳遞下一個 MDX 查詢的報表中,很顯然我們要的是參數 [Product].[Product Categories].[Category].&[2] 去作為過濾條件。如果實現知道點擊成員的層次結構路徑,那么我們可以事先將整個成員的字符串准備好,然后只更改值的部分。但是如果成員實現不知道是哪一個層次上的話,就不好處理了。
這樣要使用到成員的一些相關屬性 -
SELECT {} on 0, [Product].[Product Categories].[Category].MEMBERS DIMENSION PROPERTIES MEMBER_CAPTION, UNIQUE_NAME, LEVEL_UNIQUE_NAME, MEMBER_KEY ON 1 FROM [Step-by-Step]
雙擊查詢出來的成員值之后可以看到相關的屬性,這樣的查詢結果如果在 SSRS 編輯器中,這些屬性會跟隨成員本身出現的。
SSRS 中的編輯器 MDX 查詢會出現全部的屬性,這些屬性也將作為 Dataset 的字段出現。
屬性以字段的形式出現。
先設置好四個字符串參數變量,然后拖放到相關區域,當點擊 Category 部分時候跳轉到自身報表,然后顯示相關參數的值。
點擊 Category 編輯它的 Action 動作,跳轉到自身,然后把其它的幾個屬性作為參數傳遞。
點擊 Clothing 如果在普通 SQL 查詢的時候就是傳遞 Clothing。但是在 MDX 中查詢,可以傳遞很多種參數格式,但可能常用的是Unique Name,比如寫到 WHERE 過濾中。
點擊 Accessories 時 -
關於 MEMBER PROPERTIES 還有其它的很多屬性,可以參看 MSDN。
更多 BI 文章請參看 BI 系列隨筆列表 (SSIS, SSRS, SSAS, MDX, SQL Server)
如果覺得這篇文章看了對您有幫助,請幫助推薦,以方便他人在 BIWORK 博客推薦欄中快速看到這些文章。