2011-03-26 62 views
1

我有可從excel打開網站的Action URL。我需要將當前在Excel中列出的所有員工姓名傳遞給該網站。此列表來自多維數據集,可以由用戶使用許多不同的方法進行過濾。 但畢竟有一些[員工]。[姓名]。獲取所有當前可用的成員的名字

所以我的問題是如何生成字符串與當前成員的所有員工的名字。 下面MDX員工如何這樣的名單可以從立方體得到:{[措施] [薪水]}

SELECT NON EMPTY ON柱, NON EMPTY {[僱員] [名]。}在行 FROM [立方] WHERE( [僱員] [系] [X], [僱員] [標題] [Z] ... ... 。)在where子句中是未知的維度 名單 - 這將取決於什麼用戶將用於excel

假設此MDX將返回5個名稱: A B C D E 我需要得到的每一行是列出所有這些員工,但只列出當前顯示的員工。所以在上面的例子中,結果應該如下:D,B,C,D,E AA,B,C,D,E BA,B,C,D,E DA,B,C,D,E EA,B,C,d,E

於是我可以在URL它傳遞給網站

我試圖做到這一點使用與不存在的GENERATE但結果是,我要麼得到列出立方體中的所有員工(當前未選定)或僅列出一個。

有人可以幫助我嗎?

+0

你可以循環使用VBA的Excel中的單元格以獲取所需的名稱? – 2011-04-05 12:06:33

回答

1

您需要一個計算好的成員和我們的生成mdx函數(doc)。第一個想法是:

MEMBER [Measures].[ListAsName] AS Generate([Employee].[Name].members, [Employee].[Name].currentmember.name, ", ") 

的問題這是[僱員] [姓名] .members它不是由where子句過濾(因爲它是與軸線的情況下)。這是由於它在計算的成員上下文中。

您將兩個可能的解決方案:

使用EXISTING。這意味着我們可以肯定的是,在切片機的所有成員都[僱員]維度的成員:

MEMBER [Measures].[ListAsName] AS Generate(Existing [Employee].[Name].members, [Employee].[Name].currentmember.name, ", ") 

使用non empty

MEMBER [Measures].[ListAsName] AS Generate(nonempty([Employee].[Name].members), [Employee].[Name].currentmember.name, ", ") 

同時使用:-) - >非空(現[僱員]。 [名稱] .members)

事實上,第一個不起作用的是SSAS或MDX查詢中的問題。第二個是有點沉重,但也應該工作。第三個是防彈版本。