当我们查询具有多个级别的维度/层次结构时,默认情况下允许钻取该层次结构的所有级别......例如,在由 : 组成的层次结构中Continent/Country/State/City
。
将演习限制在州级别(即不显示城市级别)而不必创建没有 City 的新层次结构的解决方案是什么?
我听说这可以使用模式脚本中的函数来“扁平化”层次结构来完成。
有人可以给我一个活生生的例子吗?
当我们查询具有多个级别的维度/层次结构时,默认情况下允许钻取该层次结构的所有级别......例如,在由 : 组成的层次结构中Continent/Country/State/City
。
将演习限制在州级别(即不显示城市级别)而不必创建没有 City 的新层次结构的解决方案是什么?
我听说这可以使用模式脚本中的函数来“扁平化”层次结构来完成。
有人可以给我一个活生生的例子吗?
第一个是将我们的导航映射为 MDX 函数(您也可以复制和粘贴代码,但不能重用)。像这样想(销售示例):
CREATE FUNCTION navigationDemo(_x) AS
{
CASE
WHEN _x.hierarchy is [Customers].[Geography] THEN [Product].[Product].[Category]
WHEN _x.hierarchy is [Product].[Product] THEN [Time].[Year].[Year]
ELSE {}
END
}
完成此操作后,我们可以转到我们的小部件,在我们的示例中是一个表,并定义一个向下钻取策略。它应该是 mdxExpression 类型,我们可以将我们新创建的函数插入到 MDX 表达式中
navigationDemo( $member ) // where $member is the clicked member in the table
不要忘记设置“过滤依据”,因为我们希望被点击的成员过滤新数据。