分类设置
教学视频
概述
对报表数据进行分栏也是一种常见需求,BaskReport中报表分栏是借助于单元格迭代原理实现。
在BaskReport当中,如果某个单元格绑定数据集后迭代方向为向下,那么该单元格在展开时会带着其所有的左子格一起复制展开,同时该单元格的直接或间隔左父格如果包裹了当前单元格及其所有左子格,那么这些左父格的跨行将会被拉大。
同样,如果单元格迭代方向为向右,那么该单元格在展开时会带着其所有下子格一起复制展开,同时该单元格的直接或间隔上父格如果包裹了当前单元格及其所有下子格,那么这些上父格的跨列将会被拉大。
在理解这套单元格迭代原理后,再回过头看报表数据分栏就简单了很多。
配置分栏
要设置分栏可以点击报表工具栏上页面设置按钮,切换到分栏标签页,即可以对当前报表数据进行分栏设置。
在勾选启用按钮后,即可以开始选择分栏主单元格,在这个分栏主单元格列表中,会把当前报表中所有设置了迭代方向的单元格罗列在这里,也就是说分栏主单元格必须是一个绑定了数据集或表达式的且设置了迭代方向的单元格,如果这个单元格迭代方向为无,那么是不会出现在这个列表当中的。
1.分栏主单元格
选择好某个单元格作为分栏主单元格后,就可以看到右侧出现分栏效果图,如下图:
上图中,选择B1为分栏主单元格,B1在报表中配置的迭代方向为向右,所以采用它分栏就是向下分栏。
同样,如果分栏单元格迭代方向为向下,那么采用经分栏就是向右分栏,如下图:
2.分栏策略
选择好分栏主单元格后,就需要定义分栏策略,BaskReport中分栏策略是根据当前选择的分栏主单元格的迭代次数来决定的,默认为当前主单元格在迭代10次进行分栏。
以上图中选择A2单元格为分栏主单元格,分栏策略为10次扩展后分栏为例:A2单元格为向下迭代,向下迭代时A2单元格会带着自己的所有左子格一起复制,在A2单元格迭代10次后,分栏策略条件满足,那么A2单元格会尝试向右迭代。
A2单元格在满足分栏策略向右迭代时,会带着所有以A2单元格为上父格的子格或间接子格一起向右复制迭代,这一点和A2单元格迭代方向为向右时采取的迭代方式完全相同。
A2单元格在向下迭代时,迭代次数只要是10的倍数,那么就会执行一次向右迭代操作,从而完成分栏动作。
BaskReport中的分栏就是基于上述原理实现,清楚这一点,理解后面的例子也就不存在障碍了。