新一代报表工具–报表设计的革命
五、行列对称
看一看这个例子:
张表在纵向上并不复杂,相信对于Crystal Report或者其他许多类似的产品是很容易的。但它在横向上有两个难点,一是列不固定,实际是按数据进行了扩展,就如同典型的分组报表在纵向上的方式一样,二是内容复杂,并不是简单的、标准的两层分组。
这种报表很典型,然而传统工具对此几乎无能为力。
这是因为传统工具本质上来源于纵向分组模型,即行式表,先是解决打印数据表的问题,然后根据需要又加上了分组、合计等等,但其行列严重不对称,列方向能力远远弱于行方向,列一直是固定的,完全不支持列向变动。
而对于在横向扩展数据列的需求,传统工具提供了交叉表的方式。但是,交叉表非常死板,虽然可以支持多层变列,但只能有一片变列区,而且其中的汇总运算很简单,只有固定的一些函数,不可随便增加运算行列。象上面那个例子,在水平方向的展开并不是标准的先列数据再小计的方式,用交叉表实现起来就会很困难,假如再增加一列“与去年同期比”之类的,交叉表就更束手无策了。
新一代报表工具则采用了行列对称的模型,纵方向上拥有的能力与功能,完全可以在横方向上实现,彻底解决了上述问题。象我们所举的例子,在采用行列对称的模型的新一代报表工具中实现起来就会轻松得多。