抽茧剥丝话复杂报表


下图是一个典型的复杂报表,该报表用于按不同分类方法统计培训学员人数,该表列上存在多个分组(培训类型、累计培训时间、参加培训总人数、培训内容、渠道类型),分组之间不存在嵌套关系的,即分组是并列的。行上存在一个按学员行政级别为依据的分组。


复杂报表的复杂性在于结构复杂,比如上图报表列上存在多个并列分组,不仅如此,行上也可能存在多个并行分组;不仅有多个并列分组,也可能各并列分组的嵌套数不一样;不仅各个分组来源于同一个数据集,也可能来自多个不同的数据集。

尽管如此,我们仍然可以把复杂的交叉报表,看作下图所示的结构,表格包括A,B,C,D四部分,其中B,C是两个表格,决定了交叉表的结构。B表格非常特殊,第一,该表格向右生长的,而一般我们常见向下生长,如C 表格。第二,该表格有多个并列分组,而一般报表工具中,表格对象最外围只能有一个分组,尽管其嵌套数是可以多重的。


杰表.2008以上述结构分析为基础,引入了超级表格对象,该对象就是通过嵌入两个扩展方向不同的子表格,行头表和列头表,来完成交叉报表的结构性问题。两表均可以有任意多的并列分组,每个分组可以有层次不同的嵌套。下图(a)是设计面板中的超级表格对象,下图(b)是该对象子部件的层次关系,其中对象3就是行头表,对象4就是列头表。


杰表的超级表格对象结合杰表的DOM报表数据模型,可以演化出任意复杂的多源,多组交叉表,下面试举几例说明之。

上一篇 TableModel数据源 下一篇 列上并行分组交叉表