本例主要探讨在使用多维数据集或者DMR(Dimensionally Modeled Relational)维度模型时,使用交叉表和列表展示数据的优缺点。
准备工作…
此例,我们使用"GO Data Warehouse (analysis)"数据包。
如何实施…
1. 给予选择的数据包,创建一张列表。
2. 拖拽如下图所示的数据项到列表中,并为Product line和Product创建分组和排序
3. 运行并测试报表。
4. 现在保存这张列表,然后基于同一个数据包创建一个交叉表。
5. 拖拽如下图所示数据项到交叉表中,并为Product line和Product定义排序。
6. 运行并测试报表。
工作原理…
我们可以看到,两张报表返回了相同的数据,看起来并无差别。现在我们讨论一下,什么时候使用列表,而什么时候使用交叉表。一般来说,对于多维数据集,我们倾向于使用交叉表进行展现。多维数据集的数据组织方式,加上MDX获取数据的方式,使之天然的以两个维度返回数据。当然我们还需要考虑以下几点:
1. 是否需要动态显示列。如果需要动态显示列,并且列成员是由数据驱动的,那么需要使用交叉表。
2. 报表是数字导向型还是文本导向型。如果报表需要显示很多文本,因为交叉表交集只能显示数值型对象,如果使用交叉表,就不得不在列中嵌套很多文本信息。这样极影响报表性能。这个时候,推荐使用列表。
3. 报表输出的方式,是HTML格式还是其他。列表比较适合以HTML格式输出。默认情况下,只要检索到20行数据,报表的第一页就可以显示出来了。而交叉表,需要检索完全部的数据才会显示第一页。很容易看出,在报表数据量比较大的时候,使用列表可以节约用户等待时间。
总结一下,一般的,对于多维数据集,我推荐使用交叉表展现数据。但是在决定之前,必须要综合考虑报表的现实情况以及客户需求。