多数据集的交叉表

前述交叉表虽然是并列分组的,但所有分组、交叉索引信息都来自一个数据集,然而,当存在多个交叉分区时,如果把所有数据置于一个数据集中,会使这个数据集非常庞大而使检索性能下降,这时,就有必要将分组信息,交叉索引信息分散置于多个数据集中,形成多数据集的交叉表。

除了性能上的原因需要多数据集外,还有一个原因是因为合并一个大数据集,需要额外编码,或者很复杂的查询使维护工作量加大等。

上图(b)所示模板,意图是做一个显示销售额的交叉表,在列上显示地区信息,在左面位置显示按产品类别划分,和按客户划分的分组。交叉部分显示每个地区,每个类别的销售额,和每个地区,客户的销售额。

图(a)是该报表的模型定义,该模型有四个数据集:

  1. 产品查询表数据集提供列上的地区分组信息,和类别地区相交的信息,即类别地区交叉索引节点;
  2. 客户表数据集,提供显示在左面的客户分组;
  3. 类别表数据集下,建Row节点,提供交叉表左面的产品类别信息;
  4. 客户地区表数据集,提供客户地区相交区域的信息,即客户地区交叉索引节点;

模型节点与对象的绑定关系已经图示,不再详述。下面是该报表模板的预览效果: