广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    数据分析软件FineReport教程:[23]多源报表

    来源:网络收集  点击:  时间:2024-02-29
    【导读】:
    FineReport报表天然支持多数据源报表。一张报表中可以定义多个数据集,分别取出需要的数据库表,所取的数据库表甚至可以来自于不同的数据库。下面就通过数据分析软件FineReport来简单介绍一下。工具/原料more数据分析软件FineReport7.1.1大小:148.2M 适用平台:windows/linux简单多源报表1/8分步阅读

    描述

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

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

    2/8

    打开单个数据源报表

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

    3/8

    新增数据源

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

    4/8

    绑定数据列

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

    5/8

    设置过滤

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

    6/8

    可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。

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

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

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

    7/8

    保存并预览

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

    8/8

    多数据源报表优势

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

    FineReport天然支持多数据源的报表,一张报表中可以添加任意多个数据集,每个数据集使用最简单的SQL语句查询出需要的表数据,在报表中只需要使用过滤就可以将来自不同表的数据相互关联起来。使得多数据源报表制作更加简单。

    复杂多源报表1/10

    实际应用时,交叉表当中的行列与汇总计算数据,均来自不同数据库也是很常见的。如下报表:

    在这张报表中,项目总数,财政拨款,自有资金及其它资金都是来自于不同的数据集。

    2/10

    准备数据集

    数据库的数据表是项目ID与项目名称有一张单独的表来保存,另有项目数量,财政补贴资金,单位自筹资金,其它资金等四张列表。每张表均通过ID字段与项目名称表建立关系,以下是五张内置的数据集:

    注:在数据集面板中点击添加按钮,选择内置数据集即可新建内置数据集,直接添加数据

    项目名称(项目名称,ID)--project

    3/10

    项目总数(ID,项目总数)--zs

    4/10

    财政拨款(ID,金额)--cz

    5/10

    单位自筹(ID,金额)--dz

    6/10

    其它资金(ID,金额)--qt

    7/10

    表样设计

    如下设计报表:

    8/10

    绑定数据列及过滤设置

    将数据列依次拖拽到单元格中,设置如下:

    9/10

    编号和公式

    在需要添加编号和计算汇总的格子中写入公式:

    10/10

    保存并预览报表

    保存模板。设计器中点击分页预览,即如上的效果图。

    多源分片报表1/9

    描述

    多源就是一张报表的数据来源来自多个数据表,甚至是多个物理数据库。这里的“多个”常常不是两个三个,而是七八个乃至十几个,无法转成单源;

    分片是指一张报表的纵向或横向或双向同时被分成了多个区域,往往每个区域来自不同的数据源;

    这样的报表即多源分片报表,如下图:

    2/9

    思路设计

    多源分片报表通常有比较复杂的横表头与纵表头,在设计多源分片报表时,可以先将表头设计好,最后设计中间部分的数据,此时只需要设置好对应的关联过滤即可,最后进行模板数据字典等显示设置;

    另外一种快速制作多源分片报表的方法是每片单独设计,如上图报表,可以先设计分片1,确认无误后再设计分片2,如此类推,同样最后进行模板数据字典等显示设置。

    3/9

    准备数据

    连接数据库FRDemo,新建四个数据集,数据集名分别为雇员、产品、订单信息和订单对应的sql语句如下:

    雇员的SQL语句:SELECT 雇员ID,职务 FROM 雇员

    产品的SQL语句:SELECT 产品ID,类别ID FROM 产品 where 类别ID =1 or 类别ID =2

    订单信息的SQL语句:SELECT 订单.订单ID,雇员ID,产品ID,数量,(数量*单价) AS 总额 FROM 订单,订单明细 WHERE 订单.订单ID=订单明细.订单ID

    订单的SQL语句:select * from 订单

    4/9

    表样设计

    最终表样如下:

    5/9

    分片1制作

    分片1按国家与雇员进行分组统计,中间数据受左表头与上表头双重控制:

    6/9

    分片2制作

    分片2直接统计总额与数量,中间数据只受上表头控制:

    7/9

    分片3制作

    分片3按照雇员职务与雇员进行分组统计,中间数据受左表头与上表头双重控制:

    8/9

    形态设置

    最后我们根据需要,设置数据的显示样式、形态、颜色等。

    对C4,C6,E2和E3单元格作形态数据字典设置,都采用数据库表的方式,具体设置如下表:

    9/9

    保存与预览

    保存模板,设计器中点击分页预览,就可看到如上效果。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_173478.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 03:18:05  耗时:0.025
    0.0248s