简单多源报表

  • 文档创建者:文档助手1
  • 编辑次数:17次
  • 最近更新:张颖杰 于 2019-11-29
  • 1. 概述

    1.1 视频教程

    简单多源报表在线视频学习请查看「简单多源报表」

    1.2 预期效果

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

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

    1571728774499445.png

    1.3 实现思路

    1)传统报表制作方式

    多数据源报表传统的做法,是通过拼 SQL 将多源整合为单源。

    如上例中将销量表与销售总额表整合起来:SELECT * FROM 销量,销售总额 WHERE 销量.销售员 = 销售总额.销售员

    若数据库表比较复杂,且使用的表个数不止 2 张而是更多时,可以想象,最终的 SQL 查询语句将会非常复杂。

    2)FineReport 制作方式

    FineReport 天然支持多数据源的报表,一张报表中可以添加任意多个数据集,每个数据集使用最简单的SQL语句查询出需要的表数据。

    在报表中只需要使用过滤就可以将来自不同表的数据相互关联起来,使得多数据源报表制作更加简单。

    2. 示例

    2.1 模板准备

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

    点击下载模板Cross.cpt

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

    1571730487480842.png

    2.2 数据绑定

    1)将 ds2 中销售总额数据列拖拽到单元格 E4 中,数据设置为分组、普通,如下图所示:

    1571730507935227.png

    2)设置 E4 单元格的父格为销售员所在单元格 C4,使销售总额跟随销售员而扩展,如下图所示:

    1571730870904472.png

    2.3 设置过滤

    当未设置过滤时,保存模板,选择分页预览。可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。效果如下图所示:

    222

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

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

    选中销售总额所在单元格 E4,双击单元格,选择过滤标签,添加过滤条件:销售员 等于 'C4',取出与 C4 单元格中销售员匹配的数据,如下图:

    1571731174151095.png

    2.4 效果预览

    2.4.1 PC 端

    保存模板,选择分页预览,效果如1.2 预期效果中所示。

    2.4.2 移动端

    1)App


    1571731796831506.png

    2)HTML5

    1571731822475562.png

    3. 已完成模板

    已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Multidatasource\简单多源报表.cpt

    点击下载模板:简单多源报表.cpt

    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!