复杂多源报表
1. 问题描述
上一章节中,我们介绍了简单的多数据源报表,而实际应用时,交叉表当中的行列与汇总计算数据,均来自不同数据库也是很常见的。如下报表:
在这张报表中,项目总数,财政拨款,自有资金及其它资金都是来自于不同的数据集。
2. 示例
2.1 准备数据集
数据库的数据表是项目ID与项目名称有一张单独的表来保存,另有项目数量,财政补贴资金,单位自筹资金,其它资金等四张列表。每张表均通过ID字段与项目名称表建立关系,以下是四张内置的数据集:
项目名称(项目名称,ID)--project
项目总数(ID,项目总数)--zs
财政拨款(ID,金额)--cz
单位自筹(ID,金额)--dz
其它资金(ID,金额)--qt
2.2 表样设计
如下设计报表:
2.3 绑定数据列及过滤设置
将数据列依次拖拽到单元格中,设置如下:
单元格 | 数据集 | 列名 | 设置 |
B4 | project | 项目名称 | 数据分组并从上到下纵向扩展,其它默认 |
C4 | zs | 数量 | 数据汇总求和,不扩展,过滤条件为“数据列”:ID等于project.ID,其它默认 |
E4 | cz | 金额 | 数据汇总求和,不扩展,过滤条件为“数据列”:ID等于project.ID,其它默认 |
F4 | dz | 金额 | 数据汇总求和,不扩展,过滤条件为“数据列”:ID等于project.ID,其它默认 |
G4 | qt | 金额 | 数据汇总求和,不扩展,过滤条件为“数据列”:ID等于project.ID,其它默认 |
2.4 编号和公式
在需要添加编号和计算汇总的格子中写入公式:
单元格 | 公式 | 其它设置 |
A4 | =&B4 | 在右键扩展属性中,定义其左左父格为B4 |
D4 | =sum(E4:G4) | null |
C5 | =sum(C4) | null |
D5 | =sum(D4) | null |
E5 | =sum(E4) | null |
F5 | =sum(F4) | null |
G5 | =sum(G4) | null |
2.5 保存并预览报表
保存模板。设计器中点击分页预览,即如上的效果图。
已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\advanced\Multidatasource\Multi_2.cpt
说明:这个报表当中的数据,来自于5个不同的数据集。通过报表当中的数据列关联方式,将不同数据集的数据关联显示到一张表中。从而避免了在传统的报表处理方式中,通过复杂的SQL语句,将5个数据集拼成单源的情况,大大降低报表制作的难度及对报表设计人员SQL水平的要求。
返回顶部