Cognos 8 穿透钻取高级应用
1 成员集的定义与形成(Organize Items into Sets) ........................................... 2
1.1 默认的成员集..................................................................................................... 2
1.2 自定义成员集..................................................................................................... 2
2 钻取的规则(Define Set Drillability) ................................................................. 4
2.1 默认的钻取规则................................................................................................. 4
2.2 自定义钻取规则................................................................................................. 6
3 钻取的方式 ................................................................................................................... 7
3.1 Replace Expression............................................................................................. 8
3.2 Replace Item ....................................................................................................... 8
3.3 Ancestor(N)....................................................................................................... 10
3.4
Preserve............................................................................................................. 12
3.5 Depth Based Expression (N)............................................................................. 12
3.6 Change Item([X]).............................................................................................. 13
3.7 Empty Set.......................................................................................................... 14
3.8 Default Drill Behaviours................................................................................... 14
4 自定义成员集与系统默认成员集的差别 ................................................................. 15
5 完整样例 ..................................................................................................................... 17
1
主要介绍了 cognos 8 穿透钻取的高级部分应用。定义穿透钻取分成以下几个步
骤来实现:
1. 成员集的定义与形成
2. 钻取规则
3. 钻取的方式
1 成员集的定义与形成(Organize Items into Sets)
1.1 默认的成员集
把数据项分组形成成员集有一些默认的规则:
(1) 只有构成报表的数据项才可考虑组成成员集(如果数据顶在 Query 中但没有
被用到形成报表,这些数据项没有必要考虑构成成员集)
(2) 默认形成成员集是根据数据项所在的维度层次。例如在 Figure 1 中有 3 个成
员集。
[Years]与[Year]数据项构成一个成员集。因为它们都来自同一个维度
[Order Method]数据项自己构成一个成员集,因为它是来自 Order Method
维度的唯一数据项。
[Product Line]与[Order Method]一样也自己单独构成一个成员集。
1.2 自定义成员集
报表复杂的穿透钻取都需要自定义成员集。自定义成员集有以下基本规则:
2
(1) 报表范围内的数据项都可以构成成员集
(2) 来自同一个维度的不同层次的数据项没有必要再自定义组成一个成员集,
因为它们默认就是一个成员集。但是可以把它们分别自定义成独立的不同
成员集,这样它们在穿透钻取时就会互不影响。
(3) 其它在报表中没有被自定义构成成员集的数据项则根据系统默认的规则
构成成员集。
(4) 自定义构成成员集的报表数据项本身并不具有穿透钻取的能力,除非人为
给数据项赋予钻取能力。
自定义成员集有以下几个步骤:
1. 打开 Query 的定义页面
2. 在 Query 的属性框中把“Define Member Sets”属性值设置成“Yes”如
图 Figure 2 所示:
3. 打开“Member Sets”tab 页,把要构成成员集的数据项拖拽进去形成成
员集。每个成员集的根结点数据项决定了各个成员集之间的分组关系。
如 Figure 3 中 Region 根结点因为与 Product Line、Product Type 两个数据
项没有什么关系,所以自己形成了一个独立的成员集。
3
如果报表要求 Product Line 与 Product Type 两个数据项的钻取行为互不影响,
则可以自定义这两个数据项为两个独立的成员集,而不是按 Figure 3 中把两
个数据项嵌套在一起形成一个成员集。自定义成员集将会覆盖原来系统默认
成员集的形成方式。
2 钻取的规则(Define Set Drillability)
2.1 默认的钻取规则
对于没有自定义成员集、自定义钻取方式构成报表的数据项有以下几条系统默
认的钻取规则:
向下钻取规则:
(1) 数据项是从维度的数据成员中获取
(2) 默认的钻取规则只对构成报表的数据项有用
(3) 向下钻取的数据项必须是报表中某个维度层级中最低的一层。
4
如 Figure 5 中“Quarter”是时间维度中最低的层次,所以它可以向下钻取。报
表中时间维度的其它层次都不能向下钻取。
(4) 数据项不能是被“隔离”(The item must not be “isolated”)
“隔离”情况发生在钻取到维度的最低层次时。在这种情况下,钻取到的数
据项,它的相邻兄弟成员都被消除,并且这个数据项不能再向下钻取。如
从 Figure 6 向下钻取到 Figure 7 时,“2004/Jun”是时间维度中最低层的成
员,它相邻的兄弟成员“2004/Apr”等已被消除,并且它也不能再向下钻
取。
向上钻取规则:
(1) 数据项是从维度的数据成员中获取
(2) 数据项必须是下面情况中的一种:
a) 所在层次是报表中相对其它同维数据项是最低层次
b) 是所在层次最低层次的上一层
c) 最低层次不是维度中的最高层级
(3) 其它数据项必须隐式设置成不可向上钻取
5
2.2 自定义钻取规则
自定义钻取依照以下规则,规则的优先级依次从强到弱。规则 1“取消向下钻取”
的优先级比其它规则都高。
规则 1:(优先级最高)取消向下钻取
通过“Drill Behavior”窗口可以对报表的任意数据项根据需要定义是否要向
下或向上钻取。在 Figure 8 中,“Country”数据项被定义成禁止向下钻取:
规则 2:成员集中的数据项没有定义钻取方式
6
如果数据项是成员集的一个结点,但它没有定义向上或向下的钻取方式。则这
个数据项无法钻取。因为定义了成员集,就表示报表的制作者必须控制数据项的所
有行为,所以对钻取行为就要手工定义而原本的系统默认失效。
规则 3:维度中的最高/最低层次
数据项如果是某个维度最高层次上的成员则无法向上钻取,如果是维度最低层
次的成员则无法向下钻取。
规则 4:系统对成员集定义好的默认规则
Table 1 是对成员集钻取的默认规则,前面的所述会覆盖 Table 1 中定义的规则:
3 钻取的方式
钻取主要有以下几种方式,用户可以根据需要自定义
7
3.1 Replace Expression
向下钻取
当采用“Replace Expression”作为向下钻取的方式时,钻取的结果集将是向下
钻取的数据项的所有子结点:children(inpupt member)
例如在 Figure 12 中,在左图中对“United States”数据项向下钻取,则返回右
图中“United States”所有的子记录。
向上钻取
数据项如果是报表中某个维度最底层的成员时,向上钻取采用“Replace
Expression”方式,返回的结果集是数据项上一层的所有成员:
children(grandparent(input member))
数据项如果比报表中同维最底层数据项更高一层,则向上钻取返回的数据集是
该数据项上层的母结点,而不是返回上一层所有的结点。
parent(input member)
3.2 Replace Item
向下钻取
当采用“Replace Item”作为向下钻取的方式时,钻取的结果将返回向下钻
取的数据项它本身。
如在 Figure 14 中左图“United States”向下钻取的结果是右图中的“United
States”本身。
8