多数据源报表解析之简单多源报表

多数据源报表即一张报表中能够定义多个数据集,分别取出须要的数据库表,所取的数据库表甚至能够来自于不一样的数据库。本文经过几个例子说明多个数据集数据如何相互关联来实现多源报表。数据库

1. 描述spa

多数据源,就是在同一张报表当中,显示的数据来自于多个不一样的表或不一样的库。设计

以下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧黄色部分来自销售总额表,即数据来自于两张不一样的数据库表:模板

2. 示例扩展

2.1 打开单个数据源报表im

打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cross.cpt拖拽

2.2 新增数据源数据

再新增一个数据集ds2,其SQL语句为SELECT * FROM [销售总额]。ds2数据集与ds1数据集都有一个销售员字段。查询

2.3 绑定数据列margin

以下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展:

2.4 设置过滤

此时设计器预览,效果以下:

能够看到,扩展出来的每个销售员下,都重复显示销售总额字段的全部数据。

虽然销售总额的父格为销售员数据列,因为他们来自于不一样的数据集,所以销售总额不会将父格销售员做为条件进行筛选,即不存在附属关系。

咱们须要销售总额与销售员一一对应,就须要设置过滤条件,将这两个数据集的数据经过销售员关联起来。

选中销售总额所在单元格,设置过滤,添加过滤条件:销售员 等于 'C4',取出与C4单元格中销售员匹配的数据,以下图:

2.5 保存并预览

保存模板,预览报表,便可看到如上的效果。

3. 多数据源报表优点

多数据源报表传统的作法,是经过拼SQL将多源整合为单源。如上例中将销量表与销售总额表整合起来:SELECT * FROM 销量,销售总额 WHERE 销量.销售员 = 销售总额.销售员 。若数据库表比较复杂,且使用的表个数不止2张而是更多时,能够想象,最终的SQL查询语句将会很是复杂。

FineReport自然支持多数据源的报表,一张报表中能够添加任意多个数据集,每一个数据集使用最简单的SQL语句查询出须要的表数据,在报表中只须要使用过滤就能够未来自不一样表的数据相互关联起来。使得多数据源报表制做更加简单。

相关文章
相关标签/搜索