定位和拉伸
例3.6.1-1:
1、 横向分区从左到右的顺序为:左表头 >常规列 >右表头
2、 纵向分区从上到下的顺序为:分页页眉-》头标题-》报表头-》分组表头-》数据区-》表尾区-》尾标题-》分页页脚。
3、 区域顺序从左到右、从上到下不可颠倒
4、 除了数据区,其它区域可以不存在
5、 合并格不能跨越区域,否则分页时会出现混乱
6、 除报表头、分组表头、数据区和表尾区以外的区域适用定位和拉伸规则
报表设计的时候,由于数据区单元格是横向扩展的,因此经常出现数据区只需要两三列的单元格,而标题区由于不是扩展的,往往需要报表编号、日期、制表人等等信息,导致标题区需要四五列甚至更多的单元格,而报表的展现模型又是严格的矩形,由此导致数据区会出现一些没用的单元格,为了避免这些没用的单元格占用内存,可以把这些单元格设为空白单元格。
所谓空白单元格,就是不存储任何属性的单元格,他仅仅起个占位的作用,保证报表始终是个完整的矩形,因此在内存中他基本不占用内存。
例3.6.2-1:
规则: 当数据区向右、下进行扩展复制时,如果紧邻的右、下方有空白单元格,那么空白单元格的位置会被优先占用,之后才会继续向右、下复制。
数据区横向扩展时,很可能横向扩展出很大面积,但是头标题区和尾标题区在设计的时候无法知道数据区会扩展出多大,而为了让报表整体美观,报表的标题区和尾标题区都是希望随着数据区的横向扩展,头标题区和尾标题区有些内容要靠右对齐,有些内容要靠左对齐。这时,我们建议除了希望靠左靠右对齐的单元格外,对中间某一单元格设置“分页时伸缩“属性,这样,横向扩展时报表引擎会对该单元格进行拉大。这就是分页时伸缩规则。
报表头、分组表头、数据区、表尾区横向扩展时,其它区域的单元格从右往左数,找到第一个设置“分页时伸缩”属性的单元格,对其进行拉伸。如果没有单元格设定了分页时伸缩,则对最右边一个单元格进行拉伸。
例3.6.3-1:
位置不变
如3.6.2和3.6.3所述,报表头、报表尾、分组头、数据区单元格进行横向扩展时,其它区域的单元格有可能要靠左对齐,因此除了分页时伸缩规则,我们还定义如下规则:
报表头、报表尾、分组表头、数据区单元格进行横向扩展时,其它区域的单元格除了向右靠齐和被拉大的单元格,其余单元格保持位置不变。