可以定义多维表达式(MDX)表达式(称为自定义成员公式),以提供指定属性的成员的值。 数据源视图中表中的一列为属性中的每个成员提供表达式,该表达式用于确定该成员的值。
自定义成员公式决定与成员关联的单元格值,并覆盖度量值的聚合函数。 自定义成员公式以 MDX 编写。 每个自定义成员公式都适用于单个成员。 自定义成员公式存储在维度表中或与维度表有外键关系的另一个表中。
属性 CustomRollupColumn 的属性指定了包含该属性成员自定义成员公式的列。 如果列中某一行为空,则该成员的单元格值将正常返回。 如果列中的公式无效,则每当检索使用该成员的单元格值时,都会出现运行时错误。
在为属性指定自定义成员公式之前,请确保包含属性的维度表或直接相关的表具有用于存储自定义成员公式的字符串列。 如果是这种情况,可以手动设置 CustomRollupColumn 属性上的属性,也可以使用商业智能向导的“设置自定义成员公式”增强功能在属性上启用自定义成员公式。 有关如何使用此增强功能的更多信息,请参阅 为维度中的属性设置自定义成员公式。
评估自定义成员公式
自定义成员公式不同于计算成员。 自定义成员公式适用于维度表中存在的成员,并且仅提供成员的值。 相比之下,计算成员不存储在维度表中,计算成员表达式为维度或层次结构中包含的其他成员定义数据和元数据。
自定义成员公式替代与度量值关联的聚合函数。 例如,在指定自定义成员公式之前,使用Sum 汇总函数的一个度量在时间维度的各个成员中具有以下的值:
2003: 2100
第 1 季度:700
第 2 季度:500
第 3 季度:100
第 4 季度:800
2004: 1500
第 1 季度:600
第 2 季度:200
第 3 季度:300
第 4 季度:400
使用自定义成员公式时,成员的值由自定义汇总公式来提供。 例如,以下自定义成员公式可用于将时间维度中 2004 年 2004 成员的第 4 个子成员的值作为 450 提供。
Time.[Quarter 3] * 1.5
自定义成员公式存储在维度表的列中。 通过在属性上设置 CustomRollupColumn 属性来启用自定义汇总公式。
若要将单个 MDX 表达式应用于属性的所有成员,请在维度表上创建命名计算,以文本字符串的形式返回 MDX 表达式。 然后,在要配置的属性上通过 CustomRollupColumn 属性设置指定命名计算。 命名计算是数据源视图表中的一列,该列返回由 SQL 表达式定义的行值。 有关构造命名计算的详细信息,请参阅 数据源视图中的“定义命名计算”(Analysis Services)
注释
若要将 MDX 表达式应用于特定级别的成员,而不是基于特定属性的所有级别的成员,可以将表达式定义为级别上的 MDX 脚本。 有关详细信息,请参阅 MDX 脚本基础知识(Analysis Services)。
如果同时对属性的成员使用计算成员和自定义汇总公式,则应注意求值顺序。 计算成员会在自定义汇总公式解析之前先被解析。