多个横向扩展区域的报表的设计方法
在报表的设计过程中,会遇到一个复杂报表中有多个区域,这样的报表如果只包含纵向的扩展,设计起来还是比较容易的,但是当遇到有一个或者多个横向扩展的报表的话,如果按照原来的设计方法进行设计,不仅不够美观,而且数据可能不够准确,所以这类报表不能按照原有的方法来实现,需要根据具体的需求进行分析,从而找到合适的设计方法。
当报表出现横向扩展的时候,导致横向扩展所在列也横向扩展,这样就会影响此扩展格的上方和下方的单元格,这个就是问题产生的原因。
1:嵌入式或者引入式的主子表
此种方法由于子报表放在固定了宽度的单元格中,所以子报表在扩展的时候不会影响到其他单元格,这样,在子报表的横向扩展就对其他区域有什么影响了。
两种报表浏览样式如下(这两种报表的具体设计方法请参照初级设计教程):

可以看到两个报表都有横向扩展而且展示出来的结果是不一样的。嵌入式主子表的优点是固定了单元格的大小,而由于每个单元格内容都不同,所以有可能出现列无法对其的现象;引入式主子表没有出现这个问题,但是如果横向扩展过多,也会影响美观。
2:横向扩展的强制换行
这种方法使得所有区域的报表都是横向扩展的,这样就可以控制横向扩展了多少单元格,让报表可以只横向扩展固定个数的单元格就进行换行,这样就可以避免上述不美观的情况。
这种横向扩展强制换行方法有以下两种:
(a):使用to函数进行强制换行,这种方法可以参考强制换行这篇文章,里面有详细介绍。
(b):使用to函数加valueat函数,实现动态的取数,这样也可以实现报表的强制换行,这种方法可以参考valueat函数的使用方法和相关文章的介绍。
注意:由于使用to函数实现了横向扩展固定的列数,当报表区域过多时,可能会出现有的单元格根本不需要扩展但也随着横向扩展了的情况,这样就需要对报表进行修改了。
3:这种方法是将以上两种方法进行中和,将有横向扩展的子报表进行横向的强制换行,这样在显示的时候就在横向上进行了控制,既取到了想要的数据,又使得页面变得美观。
综合比较上面的几种方法,如果需求比较简单,可以选择方法1和2,设计起来比较简单;如果需求比较复杂而且对美观度要求比较高的话,可以采用方法3。