birt教程之多层交叉汇总报表
1.1多层交叉汇总报表
1.1.1加入汇总
1.在3.8所建立的报表MultilayerCrosstab.rptdesign基础上,点击布局编辑器中Cross Tab左下角的“Cross Tab”图标选中本交叉表。
在Property Editor属性编辑器中选择“Row Area”,(可参考图3-11)。
2.在左边的选项栏中选择第一个选项“Sub Totals”,点击编辑器右边的“Add”按钮,弹出加入次级汇总(本例即根据客户类型进行汇总)的窗口:
全部选择默认数据:点击“OK”完成创建。
3.在左边的选项栏中选择第二个选项“Grand Totals”,点击编辑器右边的“Add”按钮,弹出窗口加入行汇总,同样,数据全选默认。
点击“OK”完成创建。
4.在属性编辑器Property Editor视图中选择“Column Area”,同样在左边的选项栏中选择第二个选项“Grand Totals”,点击编辑器右边的“Add”按钮,弹出窗口加入列汇总,同样,数据全选默认。
点击“OK”完成创建。
创建完毕后,布局编辑器如下图:
1.1.2格式化与预览
格式化后如下图:
预览结果如下:
同为比较常用的报表工具,FineReport对多层交叉汇总报表的解决方案和实现方法与BIRT有所不同,在finereport交叉汇总是利用层次坐标实现的,以一个简单示例为例,解释具体实现思路和步骤,供BIRT使用者借鉴:
1.问题描述
逐层累计与跨层累计都是纵方向上的累计,也可以横向进行累计,如下图各个销售员每个月订单金额的累计:
2.示例
2.1新建报表,设计表样
新建工作薄,添加数据集,SQL语句为select雇员ID,strftime('%m',订购日期)as月份,应付金额from订单where strftime('%Y',订购日期)= '2011',查询出2011年每个雇员,每月订单金额。
如下制作一张交叉表:
数据列设置如下:
单元格数据
集
数据列属性
A3ds1雇员
ID
居中,其余默认,设置数据字典显示对应
的雇员姓名
B2ds1月份居中,从左到右扩展,其余默认
B3ds1应付金
额
居中,汇总-求和,不扩展,其余默认
2.2横向累计
在C3单元格中,写入公式:=B3+C3[;B2:-1]:当前月份的金额加上一月累计金额。
其中C3[;B2:-1]表示上父格B2扩展出来的上一格(上月)的C3的值。
2.3保存与预览
保存模板,预览效果如上。
模板效果在线查看请点击Accumulative_3.cpt 已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cac uate_Between_Cells\Accumulative_3.cpt。