IcCube 报告:如何停止层次结构中的钻取?
IcCube Reporting : How to stop drill in a hierarchy?
当我们查询具有多个级别的 dimension/hierarchy 时,默认情况下允许钻取该层次结构的所有级别...
例如,在由以下组成的层次结构中:Continent/Country/State/City
.
将钻取限制在州级别(即不显示城市级别)而不必创建没有城市的新层次结构的解决方案是什么?
我听说这可以使用模式脚本中的函数到 "flatten" 层次结构来完成。
谁能给我一个活生生的例子?
首先是将我们的导航映射为 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
}
一旦完成,我们就可以转到我们的小部件,在我们的示例中是 table,并定义一个向下钻取策略。它应该是 mdxExpression 类型,我们可以将我们新创建的函数插入到 MDX 表达式中
navigationDemo( $member ) // where $member is the clicked member in the table
不要忘记设置 'Filter by',因为我们希望新数据被点击的成员过滤。
当我们查询具有多个级别的 dimension/hierarchy 时,默认情况下允许钻取该层次结构的所有级别...
例如,在由以下组成的层次结构中:Continent/Country/State/City
.
将钻取限制在州级别(即不显示城市级别)而不必创建没有城市的新层次结构的解决方案是什么?
我听说这可以使用模式脚本中的函数到 "flatten" 层次结构来完成。
谁能给我一个活生生的例子?
首先是将我们的导航映射为 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
}
一旦完成,我们就可以转到我们的小部件,在我们的示例中是 table,并定义一个向下钻取策略。它应该是 mdxExpression 类型,我们可以将我们新创建的函数插入到 MDX 表达式中
navigationDemo( $member ) // where $member is the clicked member in the table
不要忘记设置 'Filter by',因为我们希望新数据被点击的成员过滤。