在我们的ActivePivot项目中,我们使用预定义的层次结构和级别设计了我们的多维数据集。其中,我们的货币都属于同一水平。
Underlyings
|_ALL
|_UnderlyerCurrency
我们的用户希望将这些货币分组,根据用户的选择,每组可能会有所不同。
我知道已经可以使用Analysis Dimension对ActivePivot中的成员进行分组/分组,但这对我们的用例来说太静态了。
是否可以按用户对这些货币进行分组?是否可以在不重新启动服务器的情况下进行配置?
PS:我们使用Excel和ActivePivot Live作为UI
答案 0 :(得分:1)
使用MDX,可以定义存储桶或组。
下面是一个示例MDX,它在您现有的层次结构中动态创建两个存储桶欧洲和亚洲(我假设维度和层次结构具有相同的名称):
WITH
Member [Underlyings].[Underlyings].[ALL].[Europe] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[EUR],
[Underlyings].[Underlyings].[ALL].[AllMember].[GBP],
[Underlyings].[Underlyings].[ALL].[AllMember].[CHF]
}
)
Member [Underlyings].[Underlyings].[ALL].[Europe].[EUR] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[EUR]
}
)
Member [Underlyings].[Underlyings].[ALL].[Europe].[GBP] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[GBP]
}
)
Member [Underlyings].[Underlyings].[ALL].[Europe].[CHF] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[CHF]
}
)
Member [Underlyings].[Underlyings].[ALL].[Asia] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[JPY]
}
)
Member [Underlyings].[Underlyings].[ALL].[Asia].[JPY] AS Aggregate(
{
[Underlyings].[Underlyings].[ALL].[AllMember].[JPY]
}
)
SELECT NON EMPTY {
[Underlyings].[Underlyings].[ALL].[Europe],
[Underlyings].[Underlyings].[ALL].[Europe].[EUR],
[Underlyings].[Underlyings].[ALL].[Europe].[GBP],
[Underlyings].[Underlyings].[ALL].[Europe].[CHF],
[Underlyings].[Underlyings].[ALL].[Asia],
[Underlyings].[Underlyings].[ALL].[Asia].[JPY]
} ON ROWS
FROM [YourCube]
使用ActivePivot Live,用户可以编写自己的MDX(尽管如此,您无法使用Excel)。
然后界面将足够智能,以便为用户提供此表上的所有常规控件(向导操作,向下钻取,排序,过滤......)。最重要的是,他们将能够在其中导航,就像它是一个常规的层次结构一样!
如果您不希望用户编写自己的MDX,您有两种解决方案: