12.1 子布局
概述
使用UniEAP Report定义报表时,支持在同一行上并排出现多个横向扩展、或在同一列上并列出现多个纵向扩展,且多个扩展之前彼此没有关联。但有时,可能需要定义如下图所示的报表。
该报表的特点是,在不同行上存在多个相对独立的组成部分,每个部分各自是横向扩展的。这就是本文所说的“组合报表”,即有多个独自扩展的部分组合在一起的报表。
错误的定义方法
按照第一反应,可能会想到下图中定义这张报表的方式。
其中红框圈起来的格都是横向扩展的,且第二部分的扩展格对第一部分的扩展格没有依赖。这样看起来各部分分别扩展,就能实现想要的效果。
但事实上,这样定义是错误的。将报表导出到Excel中,会得到图3所示的效果。表格中出现了毫无意义的空白(红框圈起的部分)。
之所以会有这样的效果,是因为图2中扩展格B在生成报表时扩展出了多列,根据UniEAP Report的填充逻辑,会把与之在同一列上的A格“撑开”,A格在此处扩展出的内容虽然只占一格,却会多出四个空格。(注意与B依赖于A的情况的区别,如果B依赖于A,则此处A扩展出的这五个格会合并为一个。)其他部分同理。
使用子布局定义报表
在报表中左下角"+"创建子布局
并在单元格类型中选择子布局,并选择对应的子布局标识
如图所示,为除第一部分外的每个部分定义一个子布局。子布局占据一列或多列都可以,只要不超过子布局内容扩展后的列数即可。将原来在主布局中的内容移到对应的子布局中。
子布局中扩展后的内容会“平铺”在主布局中,不会对其它部分产生影响,就能得到想要的效果,如图1所示。
使用maincell公式
通过maincell可以在子布局这取对应的主布局中单元格值