多个横向扩展区域的报表的制作方法

报表设计过程中,会遇到一个复杂报表中,有多个区域,这样的报表如果只包含纵向的扩展,设计起来还是比较容易的,但是当遇到有一个或者多个横向扩展的报表的话,如果还是按照原来的设计方法进行设计,不仅在美观程度上,而且在数据的准确性上都有不小的问题,所以这样类似的报表不能按照上述方法来实现,需要根据具体的需求进行分析,从而找到合适的设计方法。

当报表出现横向扩展的时候,导致横向扩展所在列也横向扩展,这样就会影响此扩展格的上方和下方的单元格,这个就是类似问题产生的原因。

下面就主要介绍类似问题的解决方案:

1,嵌入或者引入式的主子表,此种方法由于子报放在固定了宽度的单元格中,所以子报表在扩展的时候不会影响到其他单元格,这样,在子报表中的横向扩展就对报表其他区域有什么影响了。

嵌入式主子报表浏览,如下图:


引入式子报表,浏览后样式如下:


这两种报表的具体设计方法请参考初级设计教程,可以看到两个报表都有横向的扩展而且展示出来的结果是不一样的,嵌入式主子表报表的优点是固定了单元格的大小,而由于每个单元格内容都不同,所以有可能出现列无法对齐的现象,引入式主子表避免了这个问题的出现,但是如果横向扩展过多,也会影响到美观。

2,横向扩展的强制换行,这种方法使用所有区域的报表都是横向扩展的,这样就可以控制住横向扩展了多少个单元格,让报表可以只横向扩展固定个数的单元格就进行换行,这样就可以避免,上诉不美观的情况。这种横向扩展前置换行的方法,有以下两种方法,

使用to函数进行强制换行,这种方法可以参考强制换行这篇技术文章,里面有详细的介绍,

使用to函数加valueat函数,实现动态的取数,这样也可以实现报表的强制换行,这种方法可以参考valueat函数的使用方法,和相关文章的介绍。

当然,这种方式可有问题,就是由于使用to函数实现了横向扩展固定的列数,当报表区域过多时,可能会出现有的单元格本不需要扩展,也随着横向扩展了,这样就需要对报表进行修改了。

3,这种方法是将以上两种方法进行中和,将有横向扩展的子报表进行横向的强制换行,这样在显示的时候就在横向上进行了控制,即取到了想要的数据,又使得页面变得美观。

综合上面的几种方法,如果需求比较简单,可以选择方法1,或者方法2,因为设计起来比较简单,但是如果需求比较复杂而且美观程度要求比较高的话,可以采用方法3。

本文标签: