FineReport--学习笔记

FineReport快速入门

普通报表

1, 报表设计流程
报表效果

在制作这张简单普通报表之前,我们先来看一下报表最终呈现出来的效果,然后我们再根据这个效果来设计报表的样式。

这张报表包含的功能模块:

  • 控件面板:下拉框可以选择地区,点击查询按钮后,只查询出该地区对应的表格和柱形图数据。
  • 表格:表格统计该地区下各销售员每个产品的总销量。
  • 柱形图:柱形图将该地区下各销售员每个产品的总销量以图表的形式进行展示。

介绍完报表的实现效果,下面我们根据报表制作流程图来设计这张简单普通报表。

2, 报表制作

2.1 新建数据连接

新建数据连接的目的是让 FineReport 设计器连接数据库,这样报表就可以在数据库中读取、写入或修改数据。

数据连接的方式有两种,分别是连接内置数据库和连接外置数据库。制作这张报表连接的是 FineReport 内置的 SQLite 类型的数据库,有关外置数据库的连接后边内容会介绍。

  • 打开设计器,菜单栏选择「服务器>定义数据连接」。
  • 请添加图片描述
    请添加图片描述

弹出「定义数据连接」对话框,设计器已经默认连接了一个名为 FRDemo 的内置数据库,点击「测试链接」,弹出「连接成功」提示框,表示数据库 FRDemo 成功与设计器建立连接。接下来就可以从这个数据库中取数用于报表的设计。

2.2 新建报表类型

  • 菜单栏选择「文件>新建普通报表」或者点击「新建普通报表」按钮,新建一张空白的普通报表,如下图所示:

  • 用户可根据需要展示的数据进行页面设置,此处点击菜单栏选择「模板>页面设置」,方向选择纵向,纸张大小选择预定义 A4。或者自定义纸张大小

2.3 新建数据集

数据集通过 SQL 查询语句从已经建立连接的数据库中取数,将数据以二维表的形式保存并显示在数据集管理面板处。简单而言数据集是报表设计时的直接数据来源。

我们制作的这张普通报表将新建两个模板数据集 ds1 和 ds2。

  • 数据集管理面板选择「模板数据集」,点击上方的,在弹出的模板数据集类型选择框中点击「数据库查询」。如下图所示:

  • 在弹出的数据库查询对话框中,写入数据查询语句,新建数据集 ds1,查询并取出「销量」表中的所有数据。如下图所示:
    SELECT * FROM 销量;

  • 同理,新建数据集 ds2,写入数据库查询语句,查询并取出每个销售员的销售总量信息。如下图所示:
    SELECT 销售员, SUM(销量) AS 销售总量 FROM 销量 GROUP BY 销售员;

  • 新建好数据集之后,可在数据集管理面板查看取出的数据。如下图所示:

至此报表的数据准备工作已经完成,下面对报表的样式进行设计。

2.4 报表设计

2.3.1.3.4.1 表格设计

  • 样式设计
    标题:合并 A1~D2 单元格,写入报表标题「地区销售概况」,设置标题为 15号字体,字体加粗并居中。如下图所示:

    单元格斜线:在一个单元格中用斜线分隔显示三个标题字段信息,合并A3、B3 单元格,右击合并后的单元格,点击「单元格元素>插入斜线」。系统会弹出一个斜线编辑的对话框,在文本编辑框写入标题字段信息:产品|销售员|地区,此处使用的符号均为英文模式下的符号,同时可以通过添加空格来调整文字的位置。如下图所示:

    边框:选中从A1~D5单元格,点击工具栏中的 按钮,在系统弹出的边框设置对话框中,同时添加内部和外部边框。最终样式效果如下图所示:

  • 数据绑定
    将数据集中的数据列拖入到对应单元格中。选中地区字段后按住鼠标左键不放,拖动到单元格中,其他字段同理设置。如下图所示:

    C5 单元格用于计算每个产品各自的总销量,所以要对 C4 单元格求和,选中 C5 单元格,点击上方快捷按钮中的插入公式,在弹出的公式编辑框中输入公式 SUM(C4)。如下图所示:

    D5 单元格用于统计所有产品的总销量,所以要对 D4 单元格求和,同理,在 D5 单元格插入公式 SUM(D4)。
    数据绑定最终效果,如下图所示:

  • 属性设置
    选中 C3 单元格,让产品字段的数据在表格中横向扩展,默认为纵向扩展,右边属性面板选择「单元格属性>扩展>基本>扩展方向>横向」。如下图所示:

    选中C4单元格,由于 A4、B4、C3 单元格的扩展已经确定了唯一的销量值,故 C4 单元格无需扩展,扩展方向为不扩展。
    C5和D5单元格也都要设置扩展方向为不扩展。如下图所示:

    选中 A1~D5 单元格,点击上方的居中按钮,将表格中的字体「居中」显示。

  • 多数据集关联
    当报表中存在不同数据集的数据时,需要通过添加数据过滤条件,建立起不同数据集之间的联系。
    我们制作的这张报表的数据来源于两个不同的数据集 ds1 和 ds2,「销售员」字段是这两个数据集共有的字段,我们使用这个字段建立起他们之间的联系。
    选中并双击 D4 单元格,弹出数据列对话框,选择过滤。给单元格增加一个普通条件,将 ds2 的销售员字段与 ds1 的销售员字段进行绑定,实现两个数据集之间的关联。如下图所示:

2.3.1.3.4.2 图表设计

图表的作用在于可以更加直观地表现数据,提升用户的报表查看体验。我们在这张报表中插入柱形图来直观化展示各销售员每个产品的销售总量。

  • 合并A7~D18单元格,选择菜单栏「插入>单元格元素>插入图表」。如下图所示:

  • 弹出图表类型选择对话框,这里选择「柱形图>柱形图」,点击确定。如下图所示:

  • 选中图表,在右边属性面板选择「单元格元素>数据」,设置柱形图的数据。如下图所示:
    数据来源:单元格数据
    分类名:=B4
    系列名:=C3
    值:=C4
    注:分类名、系列名、值在设置的时候必须要有等号,否则单元格会被作为字符串处理。

  • 柱形图是对表格中地区销售概况数据的图形化展示,所以无需再次设置标题,我们在图表样式中去掉柱形图的标题。
    选中图表,在右边属性面板选择「单元格元素>样式>标题」,不勾选标题可见。如下图所示:

  • 这里柱形图展示的是所有销售员的产品销量统计信息,所以不需要对图表所在的单元格进行扩展。
    选择图表,在右边属性面板选择「单元格属性>扩展>基本」,扩展方向设置为不扩展,左父格和上父格均设置为无。
    注:原理上,此处只需设置上父格为无即可。但为了方便记忆,建议将两个父格均设置为无。

    • 父子格
      父子格是跟单元格扩展息息相关的概念,单元格的扩展是针对具体的某一个单元格,当报表主体中绑定了多个单元格时,这些单元格在扩展时是否存在联系,其扩展方向是否会相互影响呢?
      以「地区」和「销售员」这两个字段为例,这两个字段之间存在层级关系,每个地区下面会有多个不同的销售员。我们希望这两个字段在单元格扩展时,能够表现出他们之间的层级关系,也就是让这两个字段的数据能够分组展示。FineReport 使用父子格设置来实现这种效果。
      图示中「地区」字段为父格,「销售员」字段为子格。设置方法在下面的示例中详细说明。

      FineReport 支持两种类型的父子格设置。

      • 左父格:单元格之间存在纵向扩展的关系时,设置左父格。
      • 上父格:单元格之间存在横向扩展的关系时,设置上父格。
  • 用户可以自定义柱形图中系列的柱形颜色,下面我们将系列一的柱形颜色从蓝色修改为紫色。
    选中柱形图,点击属性面板「单元格元素>特效>条件显示>添加条件」,双击条件修改条件名为「系列1柱形紫色」,点击「条件编辑」按钮,在弹出的条件编辑对话框中,点击按钮,新增配色属性,下拉框选择紫色,设置普通条件系列序号等于1,点击「增加」按钮。即实现系列一柱形颜色的改变。如下图所示:

  • 保存报表并查看效果

2.3.1.3.4.3 参数设计

参数的作用在于通过设置参数,可以在参数面板中给参数添加控件,再将控件与报表数据进行绑定,进而实现根据用户输入的参数查询指定的数据。

  • 菜单栏选择「模板>模板参数」,打开模板参数设置对话框。如下图所示:

  • 模板参数对话框点击「增加」按钮,新建一个模板参数,双击该参数将它重命名为「地区」,设置默认值为「华东」。点击「确定」完成模板参数的定义。如下图所示:

  • 点击参数面板的编辑按钮,进入参数面板设置界面。如下图所示:

  • 右上角控件设置面板会显示没有添加控件的参数,点击地区或者点击全部添加,将参数的默认控件添加到参数面板。

  • 点击自定义控件的编辑按钮,选择下拉框控件类型。

  • 选中下拉框控件,在右边的控件设置面板选择「属性」,点击数据字典「编辑」按钮,类型设置为「数据库表」,数据库为「FRDemo」,选择数据库表为「销量」,列名的实际值和显示值为「地区」。
    这样就给下拉框控件绑定了数据库销量表中的地区这个字段,这个字段下有两个地区信息,分别为华东和华北,用户可下拉选择华东或者华北来查询对应地区下的销售概况信息。

  • 再次点击参数面板的编辑按钮,完成参数控件的设置。

  • 设置好控件后还不能实现根据下拉框中的参数查询指定地区的表格和柱形图信息。因为数据集中的数据是将数据库中的数据全部取出来,表格的数据来源于数据集,柱形图的数据来源于表格,所以需要给表格设置数据过滤条件,当用户下拉选择地区参数点击查询时,表格和柱形图只显示该地区的数据。
    双击 A4 单元格,在弹出的数据列对话框中选择「过滤」,添加一个普通条件,让地区等于参数 $地区 ,点击「增加」按钮,点击「确定」。即将地区单元格与参数绑定起来,当下拉框选择地区参数查询时只显示该地区下的表格和图表信息。如下图所示:

2.3.1.4 报表预览

报表必须先保存才能预览,点击「保存」按钮保存报表,点击「预览」按钮,选择「分页预览」,即可在浏览器中查看报表。如下图所示:

浏览器中报表效果如下图所示:

2.3.1.5 报表部署

  • 点击服务器,选择报表平台管理,进入到数据决策系统,进行报表部署。

  • 注意: 首次登录决策系统需要设置管理员账号
    账号:admin或root 密码:123456 即可

  • 点击管理系统,创建test目录,将报表放在此目录下。点击添加模版,部署报表。

  • 选择创建的报表路径,点击下一步,然后确定即可。

  • 业务人员就可以通过数据决策系统,查看需求报表数据。

2.3.2 填报报表
2.3.2.1 示例效果

  • 新增数据

  • 修改数据

  • 删除数据

2.3.2.2 数据准备

2.3.2.2.1 数据连接

  • 点击 服务器,选择 定义数据连接

  • 点击 +, 选择 JDBC

  • 配置mysql数据库连接信息,连接的是node1虚拟机中的mysql数据库

  • 出现中文乱码问题, 需要在URL后添加以下信息
    ?useUnicode=true&characterEncoding=UTF-8

2.3.2.2.2 数据集

  • 在mysql数据库中创建 product 表,并插入几条数据
    – 创建商品表
    CREATE TABLE product
    (
    pid INT PRIMARY KEY AUTO_INCREMENT COMMENT ‘商品id’,
    pname VARCHAR(20) COMMENT ‘商品名称’,
    price DOUBLE COMMENT ‘商品单价’,
    category_id VARCHAR(32) COMMENT ‘商品类别id’
    );

    -- 插入数据
    INSERT INTO
        product(pid, pname, price, category_id)
    VALUES
        (1, '联想', 5000, 'c001'),
        (2, '杰克琼斯', 800, 'c002'),
        (3, '香奈儿', 600, 'c003');
    
  • 在FineReport中新建数据集 ds1, 数据库查询对话框中写入SQL查询语句,取出product表中的数据

    • 点击 +, 选择 数据库查询

    • 选择查询的数据库,输入sql查询语句,预览验证是否有数据,没问题的话就点击确定

2.3.2.3 报表设计

  • A1~D1 单元格写入表格标题信息,选中 A1~D1 单元格,右边属性面板中选择 单元格属性>样式, 样式下拉框选择 预定义样式, 给标题设置一个 Head 类型的样式。

  • 将数据集中的相关数据列按照标题字段依次拖入到 A2~D2 单元格,选中 A2~D2 单元格,将字体居中。选中A1~D2 单元格,给表格整体添加内外边框。

2.3.2.4 添加填报控件

给单元格添加录入数据的控件,根据实际应用场景选择填报的控件类型,这边以文本控件为例。

选中 A2~D2 单元格,右边属性面板选择控件设置,选择控件下拉框选择文本控件。根据实际应用场景设置控件属性。

2.3.2.5 设置填报属性

设置填报属性的目的是为了将需要录入数据的单元格跟数据库表中的字段对应起来,确定这个单元格中录入的数据该写入到哪个数据库表下的哪个字段中。

  • 菜单栏选中 模板>报表填报属性,打开报表填报属性设置对话框。

  • 报表填报属性设置对话框选择提交,点击+,新增一个内置SQL的数据提交方法。选择提交类型为智能提交,数据库为node1_mysql,表为product。点击智能添加字段,获取表中的所有字段。

  • 点击智能添加单元格,将数据列对应的单元格值添加到值列(在对应位置直接点击A2~D2单元格自动添加,不要手写),将单元格与数据库表中的数据列绑定起来,勾选pid为主键,勾选未修改不更新,点击确定,即完成报表填报属性的设置。

    • 注1:勾选了 未修改不更新 后,进行填报时,页面上未修改的数据不会参与提交。
    • 注2:如果涉及到修改或删除需求,那么必须勾选一个或多个主键,这里的主键相当于 SQL 中 where 的效果,不同于数据库的主键。

2.3.2.6 设置模板web属性

设置模板 Web 属性的目的是为了自定义填报预览的页面,包括工具栏、报表显示位置、标签页显示位置等等。

注:设置模板 Web 属性不是填报模板制作的必要流程,也可直接使用默认的Web属性设置。

  • 菜单栏选择模板>模板Web属性,打开模板 Web 属性设置对话框。

  • 模板 Web 属性设置对话框中选择填报页面设置,为该模板单独设置填报页面的 Web 属性。勾选填报当前编辑行背景设置,设置其背景色。删除默认的顶部工具栏,从下方的工具库中通过双击的方式将控件添加到顶部工具栏,示例中添加的四个自定义控件分别为:提交、数据校验、插入记录、删除记录。其余选项采用默认设置,点击确定,即完成填报预览页面属性的设置。

2.3.2.7 效果预览

  • 点击保存按钮,保存报表。点击预览按钮,选择填报预览查看报表。

  • 新增数据,点击增加记录,增加新的数据,然后点击数据校验,校验成功点击提交,product表中就会新增此条数据。

  • 修改数据,直接在对应数据行修改数据,然后点击数据校验,校验成功点击提交,product表中就会修改此条数据。

  • 删除数据,选中要删除的数据行,点击删除列行,然后点击数据校验,校验成功点击提交,product表中就会删除此条数据。

  • 移动端预览时,不会显示填报工具栏,所以报表在移动端填报预览时,不能新增和删除数据,只能修改数据。如果想在移动端实现新增和删除效果,可在报表设计时添加插入删除行按钮

    • 插入行按钮,指定单元格修改为A2

    • 删除行按钮,指定单元格修改为A2

    • 填报预览

    • 移动端预览,登录管理员账号密码即可查看操作

2.3.2.8 报表部署

  • 点击服务器,选择报表平台管理,进入到数据决策系统,进行报表部署。

  • 点击管理系统,创建test目录,将报表放在此目录下。点击添加模版,部署报表。

  • 选择创建的报表路径,点击下一步,类型修改为填报,点击确定。

  • 业务人员就可以通过数据决策系统,查看需求报表数据。

2.3.3 决策报表

2.3.3.1 报表效果

现在我们想制作一张如下决策报表,如何实现呢?

参数界面:通过下拉框控件选择地区,查询出对应地区的数据。

报表块:展示参数查询的地区下,各销售员对应的产品类型的销量。

图表块:展示参数查询的地区下,各销售员对应的产品类型的销量图解。

2.3.3.2 报表制作

  • 新建决策报表
    菜单栏点击「文件>新建决策报表」,新建空白模板,新建模板步骤如下:

  • 数据集准备
    新建数据库查询 ds1 ,输入 SQL 查询语句:SELECT * FROM 销量 ,取出「销量」表中的所有数据。

  • 拖入组件

  • 调整布局
    选中 body,此时可以修改组件间隔和内边距,我们将其均修改为 20 。如下图所示:

  • 模板参数
    点击菜单栏「模板>模板参数」,新增一个参数,双击参数名重命名为「地区」,默认值输入「华东」。如下图所示:

    选中参数界面,将地区参数添加到参数界面,设地区参数的控件为「下拉框控件」。操作步骤如下图所示:

    选中下拉框控件,在右侧属性面板中设置「数据字典」,绑定当前模板的数据查询 ds1 中的「地区」字段。如下图所示:

    选中参数界面「para」,可设置参数界面的属性,「点击查询前不显示报表内容」默认勾选,那么预览模板时需要点击查询后才显示数据。本例将其取消勾选,预览时则可以直接显示数据。如下图所示

  • 报表块
    选中报表块,点击右上角的编辑按钮,进入报表块编辑界面,设计表格如下图所示:

    具体操作步骤如下:
    1)A1~D1 单元格输入表头信息,将数据集 ds1 中对应的数据列拖入 A2~D2 单元格。
    2)选中 A1~D2 单元格,设置字体大小、排列方式、边框、背景等。如下图所示:

    选中 D2 单元格,设置「销量」的数据设置为「汇总>求和」。如下图所示:

    双击 A2 单元格,设置过滤条件,使其根据「地区」参数过滤数据进行展示。如下图所示:

    完成表格设置后,点击界面下方的「表单」回到决策报表 body 界面。

    选中报表块,设置报表块组件的标题可见,输入标题「销量明细」。如下图所示:

    此时预览模板,效果如下图所示:

  • 图表块
    选中图表块,设置组件标题为「销量概况」。如下图所示:

    点击图表块右上角的编辑按钮,进入编辑状态,绑定图表数据如下图所示:

    预览模板,效果如下图所示:

  • 设置PC端自适应属性
    可以看到表格的字体与整体对比,显得略微小了一些,这是因为决策报表的 PC端自适应属性 默认字体是自适应的,会根据浏览器分辨率进行缩放。那么我们点击菜单栏「模板>PC端自适应属性」,选择「为该模板单独设置」,将字体设为不自适应即可。如下图所示:

2.3.3.3 报表部署

操作参考普通报表部署操作即可~

2.4. 数据准备

2.4.1 数据连接

2.4.1.1 数据连接概述

制作报表前首先需要定义数据来源,实际用户系统最常见的就是数据保存在数据库中,并且在不断更新中,使用数据库数据来制作报表,并且报表内容会随着数据库的更新而更新。

FineReport 中有两种数据连接方式:通过设计器建立数据连接和通过平台建立数据连接

推荐用户在数据决策系统而非设计器中新建数据连接。

  • 在数据决策系统中建立数据连接
    选择服务器>报表平台管理,打开数据决策系统,点击管理系统>数据连接>数据连接管理,选择新建数据连接。

  • 在设计器建立数据连接
    打开设计器,在服务器>定义数据连接中定义需要连接的数据库,即可建立需要的数据连接。

    如果需要修改数据连接的名称,可以通过双击原名称进入编辑状态进行修改,修改完点击「确定」即可,如下图所示:

2.4.1.2 MySQL数据连接

2.4.1.2.1 放置驱动包

  • 若是 10.0.15 及之后的版本,则跳过此步骤。

因为该数据连接使用 FineReport 自带的驱动包 mysql-connector-java-5.1.49-bin.jar ,不需要单独下载驱动包。

  • 若是 10.0.15 之前的版本连接数据库,需要替换更新驱动包:mysql-connector-java-5.1.49-bin.jar

操作步骤如下:

1)删除C:\software\FineReport_10.0\webapps\webroot\WEB-INF\lib下的 MySQL 连接驱动包:mysql-connector-java-5.1.39-bin.jar或mysql-connector-java-8.0.17.jar。

2)将下载好的驱动包拷贝到C:\software\FineReport_10.0\webapps\webroot\WEB-INF\lib路径下,如下图所示:

3)重启报表服务器。

2.4.1.2.2 新建数据连接

  • 管理员登录数据决策系统,在模板设计器中点击服务器>报表平台管理进入数据决策系统,点击管理系统>数据连接>数据连接管理,点击新建数据连接,在所有选项下选择MySQL,如下图所示:

  • 输入对应的数据连接信息。

  • 测试连接,连接成功后点击保存即可

2.4.1.3 Hadoop Hive数据连接

2.4.1.3.1 放置驱动包

将对应Hive版本的驱动包放到 C:\software\FineReport_10.0\webapps\webroot\WEB-INF\lib 路径下,然后重启报表服务器。以Hive 2.7.5版本为例:

2.4.1.3.2 新建数据连接

  • 启动hadoop
    start-all.sh

  • 启动hive的metastore服务
    hive --service metastore &

  • 启动hive的hiveserver2服务
    hive --service hiveserver2 &

  • 管理员登录数据决策系统,在模板设计器中点击服务器>报表平台管理进入数据决策系统,点击管理系统>数据连接>数据连接管理,点击新建数据连接,在所有选项下选择Hadoop Hive,如下图所示:

  • 点击确定进入数据连接配置页面。

  • 测试连接,连接成功后点击保存即可

2.4.2 数据集

2.4.2.1 数据集概述

数据集是指从数据库中将数据取出来,可直接应用于模板设计的数据展现集合。

按使用范围数据集可以分为服务器数据集,模板数据集两种。

  • 服务器数据集
    服务器数据集是对应于整个报表工程的,更换一个模板或新建一个工作簿,仍然可以用服务器数据集中的数据。
    点击菜单>服务器>服务器数据集,会弹出服务器数据集界面,所有定义的服务器数据集信息都保存在 FineDB 的 fine_conf_entity 表中。
    点击+,服务器数据集可以从数据库、程序数据集、内置数据集、文件数据集、存储过程、关联数据集、树数据集中提取数据,如下图所示:

  • 模板数据集
    模板数据集是对应于当前模板的,保存在这个模板的 cpt 文件中,不能与其他模板公用,是私有的。
    点击菜单模板>模板数据集,会出现如下界面:

    拖拽表至语句输入区域,可快速创建 SQL 查询语句,如下图所示:

2.4.2.2 数据库查询

数据库查询是指从定义好的数据库连接中,也就是数据源中使用 SQL 语句来选择需要的字段,一般是直接对数据源中的数据库表直接进行操作。数据库查询方式可分为:表查询、视图查询、模糊查询三种。

2.4.2.2.1 表查询

  • 点击模板>模板数据集,弹出模板数据集对话框,点击模板数据集窗口的左上角的+按钮,选择数据库查询,然后给数据库查询命名,选择所需的数据连接,如下图所示:

  • 选中查询编辑器,在其中输入 SQL 语句select * from product where pid= p i d 。这是一个带参数的 S Q L 查询, {pid}。 这是一个带参数的 SQL 查询, pid。这是一个带参数的SQL查询,{}为参数的形式,中间的 ID 即参数的名称,点击预览,跳出提示框,输入参数 pid=1 ,结果可以在预览组中看,实际就是执行select * from product where pid=1的 SQL 查询。如下图所示:

注意1:FineReport 数据库查询只支持一条自然 SQL 语句的查询,不支持多个自然 SQL 语句,比如SELECT * FROM A SELECT * FROM B

注意2:create 、drop 等新建表、删除表不在官方支持范围内,官方只支持 select 。

注意3:可以将数据连接中的表直接拖动到查询编辑器中

2.4.2.2.2 模糊查询

在表上方有一块空白搜索框,它们用作模糊查询。例如想要搜索客户相关的表,在搜索框中填入客户二字,则会进行自动搜索进行模糊匹配,如下图所示:

2.5 报表入门

2.5.1 报表类型

2.5.1.1 概述

模板设计是 FineReport 学习过程中的主要难题所在,FineReport 模板设计主要包括普通模板设计、决策报表设计和聚合报表设计三种模板设计类型。

FineReport 三种设计模式相辅相成,完美的满足了用户对各种报表的需求,下面我们来比较一下各种设计模式的缺点与优势。

  • 普通模板:是 FineReport 最常用,用的最多的设计模式,保存的文件类型为 cpt,依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等等,但是在分页预览模式下不能在报表主体中展示控件,而且单元格间相互影响,很难保持独立性。
  • 聚合报表:一般适用于一张模板中显示多个独立模块的报表。
  • 决策报表:一般适用于控件的展示,保存的文件类型为 frm,很好的弥补了普通报表分页预览不能展示控件的问题,同时决策报表可以进行自由拖拽设计,自适应页面大小显示,可以更好的在 移动端 展示。

2.5.1.2 普通报表

  • 概述
    普通报表可以分为报表主体、参数界面设计、图表应用和填报功能四个部分,这四个部分是 FineReport 普通模板的几大使用方式。
    普通报表的特点有:类 Excel 设计界面、无限行列扩展和多 sheet 功能,能轻松实现数据间的各种运算,实现复杂表样、分组交叉、同比环比等功能。
    同时普通报表还存在一些不足:局限于规整的格子式报表、不支持局部刷新等。

  • 设计步骤
    普通报表设计一般有 6 个步骤,如下图所示:

  • 报表主体设计
    报表主体设计是纯粹的数据展示,将需要的数据按照类 Excel 方式展示出来,如下图所示:

    普通报表可以按照数据的展示方式以及数据来源进行分类,如下表:
    分类 概述
    行式报表 行式报表即清单式明细表,对数据进行纵向扩展,将数据展示为一个列表式的表格
    交叉报表 交叉报表同时包含数据的横向扩展和纵向扩展
    分组报表 分组报表就是将报表中的数据按组展示,即将数据列中相同项合并为一组显示
    分页报表 分页报表就是将数据根据实际应用进行分页展示
    多数据源报表 多数据源报表是指一张表中的数据来自多个数据源

  • 参数界面设计
    参数设计是动态查询数据,在查询栏中可以根据实际情况选择需要展示的数据分类,如下图所示:

  • 图表应用
    图表设计是使用图表来展示数据,更加便于用户浏览,如下图所示:

  • 填报功能
    填报功能是指录入数据,将数据写入数据库中,如下图所示:

2.5.1.3 聚合报表

  • 概述
    聚合报表指一个报表中包含多个模块,每一块都类似一张单独的报表或者一张图表,块与块之间相对独立,互不影响。
    聚合报表特点:空白画布式设计界面,每个模块相互独立,专门解决大报表难题,单元格扩展分离,互不影响。
    聚合报表还存在一些不足:不支持自适应,单元格扩展分离但组件依旧相互推开。

  • 设计步骤
    聚合报表设计一般有 5 个步骤,如下图所示:

    • 新建聚合报表:设计器中菜单栏点击「文件>新建聚合报表」,添加 sheet 可选择添加聚合报表或普通报表,如下图所示:

    • 新建数据集:定义各个组件数据来源。

    • 拖拽组件:将需要的图表组件以及报表类型聚合块拖入设计界面,调整整体样式。

      • 注:多个聚合块之间不相互影响。
    • 设计组件:对组件的内容和属性进行设计,包括组件的类型、数据、样式、特效。

    • 报表预览:设计好之后,点击预览按钮 ,聚合报表支持分页预览、移动端预览。

      • 注:不支持填报预览、数据分析预览。
  • 聚合块的移动方式

    • 选中块进行移动时,只要不放开鼠标,移动的块可以覆盖在其他块上,越过它放到其他空白处,但是如果在移动过程中,在覆盖其他块的时候放开了鼠标,此时块自动回到他原来的位置。如下图所示:

    • 拖入新的组件时,只能拖到空白区域,在非空白区域会提示“禁止块与块之间的重叠”,如下图所示:

    • 当报表中存在两个及两个以上的报表块或组件时,改变其中一个报表块或组件,其他相关的报表块或组件的位置将会发生改变。
      例如:同一行的两个图表组件,当改变第一个组件的宽度时,第二个组件的位置将会发生变化。如下图所示:

  • 聚合块间的运算
    block1 是聚合块名字,点击聚合块右下角,可拖动聚合块,并在右侧组件设置属性表中,可以查看组件名称。如下图所示:

    若想在组件里面获取其他组件单元格的值,例如,在 block2 中获取 block1 中单元格 A1 的值,可直接使用公式:block1~A1,如下图所示:

2.5.1.4 决策报表

  • 概述
    决策报表是 finereport 设计器支持的 模板设计类型 其中之一。相比较普通报表和聚合报表,决策报表包含二者所拥有的基础组件,同时组件添加更自由化,允许用户根据自己的需求构建报表的框架,在报表中添加丰富的元素。
    由于决策报表自由灵活的设计风格,可以说其专为大屏和移动端而生,用户通过简单的拖拽操作即可制作画面美观、内容丰富的管理驾驶舱,制作在手机、平板等移动设备端查看的敏捷报表。在同一个页面,整合不同的业务数据,完美展示企业的各类业务指标,实现数据的多维度分析。

  • 功能

    • 多屏自适应:响应式布局,PC 端设计,平板、手机、电视、大屏等多类终端自适应
    • 丰富的可视化元素:提供表格、图形、控件等超多可视化组件
    • 多种布局方式:自适应布局、绝对布局、Tab 布局等多种布局方式,拖拽式设计
    • 组件共享复用:组件云端共享和本地复用,帮助用户更快设计出好看报表
    • 组件联动分析:组件之间的联动分析,点击某个组件,关联组件自动触发数据加载
    • 数据监控,定时刷新:后台数据智能检测对比,数据有变更前台及时更新
    • 自动轮播:支持同一个位置轮播显示不同的图表样式,支持多个 Tab 页轮播
  • 设计界面
    不同于普通报表的设计界面,决策报表采用了画布式的设计界面。报表主体就像一个空白的画板,用户通过将报表组件拖拽到画板中的方式设计报表。如下图所示:
    决策报表组件包括:参数面板、空白块、图表块、控件

  • 设计步骤
    决策报表设计一般有 5 个步骤,如下图所示:

    • 新建表单:设计器中菜单栏点击「文件>新建决策报表」,新建一张空白的决策报表。
    • 新建数据集:定义各个组件数据来源。
    • 拖拽组件:从参数面板、空白块、图表块、控件面板中选择想要的组件拖拽到画布式设计主体中,调整决策报表的整体样式。
    • 设计组件:对组件的内容和属性进行设计,包括组件的类型、数据、样式、特效等。
    • 报表预览:决策报表设计好之后,点击「预览」,PC端采用「PC端预览」,移动端采用「移动端预览」。
  • 应用示例

    • 大屏应用

    • 移动端应用

2.5.2 报表预览模式

模板预览就是指在 Web 端查看模板效果,FineReport 提供了多种不同的预览方式,来满足用户的多样化需求。

FineReport 中普通模板总共有 5 种不同的预览模式:分页预览、填报预览、新填报预览、数据分析、移动端预览,如下图所示:

不同的预览方式对应不同的 URL 地址栏和 OP 参数 ,预览方式简介如下表所示:

序号 预览方式 简介 URL 地址栏
1 分页预览 FineReport 的默认预览方式,一般在只需要查看报表数据用于分析的时候使用 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.cpt
2 填报预览 是指在 Web 端预览用来填报数据的模板,一般在只需要录入修改数据的时候使用 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.cpt&op=write
3 数据分析 数据分析模式也可以查看报表,但是其可以对报表结果进行不分页预览及在线分析:排序、二次过滤等 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.cpt&op=view
4 新填报预览 新填报预览,采用了新样式的控件,加载速度快,采用了分页加载 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.cpt&op=write_plus
5 移动端预览 通过扫码直接在手机上展现报表,让用户直观地看到当前设计模板的实际效果 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.cpt&op=mobile
6 PC 端预览 PC 端预览是针对于决策报表设计模式而言的 http://IP:端口号/webroot/decision/view/report?viewlet=xxx.frm&op=form

2.5.2.1 分页预览

2.5.2.1.1 概述

分页预览是 FineReport 的默认预览方式,一般在只需要查看报表数据的时候使用。

2.5.2.1.2 功能简介

  • 打开设计器,双击打开内置的 GettingStarted.cpt 模板,点击设计器界面上的「预览按钮>分页预览」即可预览报表,如下图所示:

  • 点击「分页预览」之后,在浏览器端就会打开一张报表,如下图所示:

  • 功能设置
    分页预览设置页面,仅对「分页预览」模板有效。在设计器中点击「模板>模板web属性>分页预览」设置,可对分页预览界面进行设置。如下图所示:

    主要功能模块如下:
    功能 内容 注意事项
    设置方式 默认选择「采用服务器设置」,可选择「为该模板单独设置」 -
    报表显示位置 设置报表在浏览器显示的位置 移动端不生效
    页面 页面的一些特殊设置 -
    工具栏 可设置是否显示工具栏以及自定义工具栏显示的内容 移动端不支持工具栏设置
    事件设置 用户可添加 Web 事件 移动端仅支持加载起始和加载结束事件

    • 设置方式

      • 采用服务器设置
        设置方式默认为「采用服务器设置」,底部功能均被置灰不可编辑,该方式作用于当前服务器下的所有模板。

        如果想要修改服务器预定义的分页预览设置,可以点击设计器菜单栏「服务器>服务器配置」,在打开的「报表服务器参数」界面选择「分页预览设置」进行修改。如下图所示:

      • 为该模板单独设置
        设置方式下拉选择「为该模板单独设置」时,可直接编辑下方的功能,配置好的页面只作用于当前模板,其他模板不可用。

    • 报表显示位置
      设置报表预览时在浏览器的显示位置,分为「居中展示」和「左展示」,默认为「左展示」,如下图所示:

      • 居中展示

      • 左展示

    • 页面设置
      对预览页面的一些特殊设置,如下图所示:

      • 以图片方式显示:分页预览的时候,会生成图片形式的报表。

      • iframe 嵌入时自动收缩:当模板以 iframe 的方式嵌入到其他的模板当中时,预览时会自动调整模板的大小,以适应 iframe 的大小。

        • 嵌入的模板未勾选「iframe 嵌入时自动收缩」时,效果如下图所示:

        • 嵌入的模板勾选「iframe 嵌入时自动收缩」后,效果如下图所示:

      • 重方式输出格子:控制单元格的行高列宽不随内容多少而变化。

    • 工具栏

      • 显示工具栏
        系统默认勾选使用工具栏,即分页预览时上方会显示工具栏,如果需要隐藏工具栏,去掉勾选即可。

      • 添加工具
        1 双击工具,将工具添加到顶部工具栏。
        2 选中工具后,点击 将工具添加到顶部工具栏,点击 将工具添加到底部工具栏。
        3 点击「恢复默认」,可恢复原始状态。

      • 自定义工具栏
        点击工具栏右边的 ,即可进入工具栏编辑界面,如下图所示:

        编辑界面可以修改已经添加的工具属性和排序,删除单个工具,自定义工具栏的背景。如下图所示:

        工具栏背景默认「没有背景」,点击「背景设置」,可设置背景为「颜色」、「纹理」、「图案」、「渐变色」、「图片」。以设置背景「颜色」为蓝色为例,效果如下图所示:

      • 删除工具
        删除所有工具:点击工具栏右边的 ,即可清空工具栏中的所有工具,如下图所示:

        删除单个工具:点击工具栏右边的 ,在工具栏编辑界面可通过 删除单个工具,如下图所示:

      • 事件设置
        点击事件设置下方的 ,可添加 JS 事件,通过 JavaScript 代码的方式实现其他预览需求。

2.5.2.2 填报预览

2.5.2.2.1 概述

填报预览指在 Web 端预览用来填报数据的模板,一般在只需要录入修改数据的时候使用,也可用来查看数据。

2.5.2.2.2 填报预览

填报预览不仅可以用来查看,而且可以在线输入与修改数据,从而进行数据的采集与入库。

1 打开设计器,在模板面板中打开doc/Form/FreeForm/自由填报模板.cpt这张模板,点击预览按钮下方的倒三角,选择「填报预览」,如下图所示:
2 点击「填报预览」按钮之后,就会在 Web 端以填报的方式打开模板,可在 Web 端对模板内容进行编辑修改,进行数据的入库操作,相较于分页预览,填报预览的URL地址后面多了一个&op=write的参数。op参数的值来控制模板的预览方式,没有参数就是普通分页预览,有参数且参数值为 write 就表明这是填报预览。如下图所示:

2.5.2.2.3 填报预览设置

  • 采用服务器设置
    设置方式默认为「采用服务器设置」,底部功能均被置灰不可编辑,该方式作用于当前服务器下的所有模板。
    如果想要修改服务器预定义的填报预览设置,可以点击设计器菜单栏「服务器>服务器配置>填报预览设置」进行修改。

  • 为该模板单独设置
    在设计器中点击「模板>模板web属性>填报页面」设置,就可以对填报页面进行设置,如下图所示:
    设置面板主要分为三大块:上面部分是对模板预览效果的一些效果设置,中间部分是模板预览之后的工具栏设置,下方是 Web 事件添加界面。

    属性 内容 注意事项
    以下设置 采用服务器设置:默认情况,使用服务器统一的设置,下面的所有选项都为灰色无法编辑为该模板单独设置:只适用于当前的模板,下面所有的功能可编辑、设置 -
    sheet 标签页显示位置 当报表中存在多个sheet时,sheet标签页位置默认处于报表底端,可设置在报表上部 移动端无意义
    报表显示位置 设置内容在报表当中显示的位置默认为左展示,如果希望报表显示的内容是居中的,可以选择居中展示 移动端无意义
    填报当前编辑行背景颜色设置 选择颜色后,会在填报预览的时候,把当前处于编辑状态的行背景颜色显示为设置的颜色 移动端无意义
    未提交离开提示 在填报的时候,如果有单元格处于已编辑的状态,在关闭或是切换网页的时候,会弹出是否提交的对话框 -
    直接显示控件 填报控件无需点击,直接显示控件 移动端无意义
    自动暂存 对于填报内容,离开页面时,自动暂存 移动端无意义
    使用工具栏底部工具栏 默认使用工具栏用户可自定义工具栏显示的工具 移动端只识别是否要显示填报提交按钮
    事件设置 用户可添加 Web 事件Web 事件的详细介绍请参见 Web 页面事件 移动端仅支持加载起始、加载结束、填报前、填报后、填报成功、填报失败事件

2.5.2.3 数据分析预览

2.5.2.3.1 概述

数据分析预览方式可以在查看数据时,对数据进行简单的分析操作,包括:排序、条件筛选、列表筛选。

2.5.2.3.2 功能简介

数据分析预览的方式有两种,分别如下:

  • 按钮:在设计器预览按钮列表下直接选择「数据分析」即可。

  • 后缀:直接在访问模板的URL后面加参数后缀&op=view即可。

注意1:移动端是不支持数据分析预览的。

注意2:数据分析预览时,数据不会分页展示。

  • 数据分析预览设置

    • 设置方式

      • 采用服务器设置
        设置方式默认为「采用服务器设置」,底部功能均被置灰不可编辑,该方式作用于当前服务器下的所有模板。
        如果想要修改服务器预定义的数据预览设置,可以点击设计器菜单栏「服务器>服务器配置>数据预览设置」进行修改。

      • 为该模板单独设置
        点击设计器菜单栏「模板>模板Web属性>数据分析设置」,设置方式下拉选择「为该模板单独设置」时,可编辑下方的所有功能,配置好的页面只作用于当前模板,其他模板不可用。如下图所示:

      主要功能模块如下:
      功能 内容 注意事项
      排序 选中某个单元格,使用排序工具对该单元格所在列的数据进行排序 -
      条件筛选 选中某个单元格,设置操作符、数据类型、数值这三个条件,筛选出该单元格所在列的某些数据 -
      列表筛选 选中某个单元格,复选该单元格所在列的去重数据列表,只显示勾选的数据 如果前端显示的数据量大于 100 条,那么列表筛选工具就不显示
      工具栏 可设置是否显示工具栏以及自定义工具栏显示的内容 移动端不支持
      事件设置 用户可添加 Web 事件,详情可参见 Web 页面事件 移动端不支持

    • 排序
      排序指选中某个单元格,使用排序工具对该单元格所在列的数据进行排序。默认勾选,效果如下图所示:

    • 条件筛选
      条件筛选指选中某个单元格,设置操作符、数据类型、数值这三个条件,筛选出该单元格所在列的某些数据。默认勾选,效果如下图所示:

    • 列表筛选
      列表筛选:选中某个单元格,复选该单元格所在列的去重数据列表,只显示勾选的数据。默认勾选,效果如下图所示:

  • 注意事项

    • 无法排序
      数据分析预览排序需要把最前面的父格设置为列表(其它列为分组),否则除了最父格,其他无法排序。

    • 不显示列表筛选工具
      如果前端显示的数据量大于 100 条,那么列表筛选工具就不显示,这是 FineReport 数据量限制规则决定的。

    • 无法使用分析工具

      • 双向扩展得到的数据,无法使用数据分析工具。

      • 当单元格存在多层父格,且与父格属于同一个数据集,则无法使用数据分析功能。
        示例 情况 结果 分析
        1 单元格 C1 的父格是 B1单元格, B1 的父格是 A1单元格, A1 无父格, 单元格 A1、B1、C1 是一个数据集 单元格 A1、B1 有数据分析功能单元格 C1 没有 单元格 C1 的父格层级是 2且父格 A1、B1 与 C1 是同一个数据集
        2 单元格 C1 的父格是 B1单元格, B1 的父格是 A1单元格, A1 无父格,单元格 A1、B1 是一个数据集,单元格 C1 是一个数据集,通过过滤和单元格 A1、B1关联起来的 单元格 A1、B1、C1 都有分析功能 -
        3 单元格 E1 的父格是 D1单元格, D1 的父格是 C1单元格, C1 的父格是 B1单元格, B1 的父格是 A1单元格, A1 无父格,单元格 A1、B1 是一个数据集,单元格 C1、D1、E1是一个数据集,通过过滤和 A1、B1关联起来的 单元格 A1、B1、C1、D1 有分析功能单元格 E1 没有 单元格 E1的父格层级是2且父格 C1、D1 与 E1 是同一个数据集

2.5.3 单元格设置

2.5.3.1 扩展性

2.5.3.1.1 扩展的方向

扩展是有方向的,您可以选择记录是依次从上至下的显示,即纵向扩展(行方向的扩展);或者是依次从左到右的显示,即横向扩展(列方向的扩展);当然你也可以选择不扩展,在一个单元格中显示。

  • 纵向扩展

  • 横向扩展

  • 不扩展

2.5.3.1.2 父格设置

子格的扩展属性会随着父格的扩展属性变化,当单元格左侧或上方相邻的单元格具有扩展属性时,单元格默认其左侧相邻单元格为其左父格,默认上方相邻的单元格为其上父格。

父格的设置有 3 种:不设置,默认设置和自定义设置,如下图所示:

对于自定义设置,可以自己输入父格或者点击下图的按钮,点击想要的单元格,它会自动返回单元格的行和列,如下图所示:

2.5.3.1.3 可伸展性

有时我们会遇到:可扩展的单元格其左侧的单元格,并不会像普通的插入那样按常态分为新的行,而是整体被拉大的效果。即展示单元格中的内容时是不伸展展示,且要让其不随子格或同级别单元格的扩展而被拉大。对于单元格的可伸展性,可分为:纵向可伸展性与横向可伸展性。下面就对其单元格的横向伸展性作简单介绍。

如:

图中可见,上面的单元格数据,均是随中间部分的数据都被拉大了,而这时希望上侧的单元格,不受其中间的单元格内容影响,则可选中不需要受影响的单元格,在报表主体右侧的单元格属性-扩展-高级中取消横向可伸展的勾选即可:

效果图如下:

2.5.3.2 父子格设置

2.5.3.2.1 功能介绍

FineReport 设计报表时,选中单元格后,单元格的父格会有「蓝色箭头」。如下图所示:

FineReport 支持两种类型的父子格设置。

  • 左父格:单元格之间存在纵向扩展的关系时,设置左父格。
  • 上父格:单元格之间存在横向扩展的关系时,设置上父格。

2.5.3.2.2 应用场景

父子格是跟单元格扩展息息相关的概念,单元格的扩展是针对具体的某一个单元格,当报表主体中绑定了多个单元格时,这些单元格在扩展时是否存在联系,其扩展方向是否会相互影响呢?

以「地区」和「销售员」这两个字段为例,这两个字段之间存在层级关系,每个地区下面会有多个不同的销售员。我们希望这两个字段在单元格扩展时,能够表现出他们之间的层级关系,也就是让这两个字段的数据能够分组展示。FineReport 使用父子格设置来实现这种效果。

图示中「地区」字段为父格,「销售员」字段为子格。设置方法在下面的示例中详细说明。

2.5.3.2.3 示例

在设计器中设置子格的左父格或上父格时,下拉框有三种设置项:「无」,「默认」,「自定义」。

下面以单元格纵向扩展时设置左父格为例,详细介绍父子格设置时三种设置项各自的应用场景和效果。


  • 「无」就是不设置单元格的父格,该单元格扩展时不考虑单元格之间的分组关系。
    选中 B2 单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格设置为「无」。

    报表效果如下图所示:

  • 默认
    当单元格左侧或上方相邻的单元格具有扩展属性时,单元格默认其左侧相邻单元格为其左父格,默认上方相邻的单元格为其上父格。
    「默认」就是指将数据列拖拽至单元格中时,该单元格会默认将其相邻上方横向扩展的单元格或者左侧纵向扩展的单元格当做上父格或者左父格。
    注意1:必须是相邻的同行或者同列单元格,不是相邻的需要自定义设置。
    注意2:其单元格的左侧相邻单元格不具有扩展属性时,会依次向左或向上寻找具有扩展属性的单元格,来确定它的父格。
    选中 B2 单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格设置为默认。由于 B2 左侧单元格 A2 是纵向扩展的,因而 B2 单元格默认的左父格为A2。

    报表效果如下图所示:

  • 自定义
    单元格之间存在扩展关系,但是它们不相邻无法使用默认设置时,通过「自定义」来设置它们之间的父子格关系。
    A2 单元格和 B3 单元格不相邻,但是它们之间仍然存在纵向扩展的层级关系。选中 B3 单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格自定义为 A2 单元格。

    报表效果如下图所示:

2.5.3.3 单元格扩展

2.5.3.3.1 功能介绍

FineReport提供了三种单元格扩展方向。

  • 纵向扩展:单元格中字段的数据纵向扩展,在不同单元格中展示。
  • 横向扩展:单元格中字段的数据横向扩展,在不同单元格中展示
  • 不扩展:单元格中字段的数据不扩展,所有数据在一个单元格中展示。

2.5.3.3.2 应用场景

数据集中的字段拖入到单元格后,如果不进行单元格扩展,字段下的数据会在一个单元格中集中展示。

通过设置单元格扩展功能,可以让一个字段下的不同数据在多个单元格中展示。

2.5.3.3.3 示例

  • 数据准备
    新建数据集 ds1,数据库查询对话框中写入 SQL 查询语句:SELECT * FROM 销量,取出「销量」表中的所有数据。如下图所示:

    将数据集 ds1 中的「销售员」字段拖入到A1单元格,A1单元格字体居中,添加黑色边框和黄色背景。如下图所示:

  • 纵向扩展
    选中 A1 单元格,右边属性面板选择「单元格属性>扩展>扩展方向」,由于数据集中的字段拖入到单元格后,默认就是纵向扩展,所以直接使用默认的扩展方向纵向扩展。如下图所示:

    点击「预览」按钮,选择「分页预览」,在浏览器中查看单元格纵向扩展的效果。如下图所示:

  • 横向扩展
    选中 A1 单元格,右边属性面板选择「单元格属性>扩展>扩展方向」,扩展方向设置为「横向扩展」。如下图所示:

    点击「预览」按钮,选择「分页预览」,在浏览器中查看单元格横向扩展的效果。如下图所示:

  • 不扩展
    选中 A1 单元格,右边属性面板选择「单元格属性>扩展>扩展方向」,扩展方向设置为「不扩展」。如下图所示:

    点击「预览」按钮,选择「分页预览」,在浏览器中查看单元格不扩展的效果。如下图所示:

2.5.3.4 单元格样式

2.5.3.4.1 概述

选中单元格,在右侧选择「单元格属性>样式」,可设置单元格自定义样式或预定义样式,如下图所示:

注意:样式只控制单元格的显示效果,对单元格的实际值没有影响。

2.5.3.4.2 自定义样式

选中单元格后,点击「单元格属性>样式」,默认设置为自定义样式,用户可对文本样式、单元格样式和对齐方式进行设置,如下图所示:

2.5.3.4.2.1 文本

  • 格式
    可对数字、时间等数据,设置显示格式,如下图所示:

    • 数字样式
      格式符 定义 示例
      0 占位格式符,不足补 0 格式:0.0实际数据:1、2.2、3.33显示数据:1.0、2.2、3.3

      占位格式符,不足不补 0 格式:0.#实际数据:1、2.2、3.33显示数据:1、2.2、3.3

      设计器中内置的一些常用格式,如下图所示:

      用户也可手动编辑,自定义相关格式,例如:

      • 格式:#0.0m
      • 实际数据:1、2.2、3.33
      • 显示数据:1.0m、2.2m、3.3m
    • 货币样式
      货币部分 ¤0 表示在整数前面加一个¥,其 ¤#,##0.00 跟数字部分原理类似。

    • 百分比样式
      百分比中,可选择显示小数后多少位,也可以自己进行添加位数以及其他字符。如下图所示:
      注意:百分比样式中,取小数位数时,遵循奇进偶不进规则。

    • 日期型样式
      日期型中可以设置日期的显示样式,例如希望日期型的数据显示成「20110101」这样的格式,则设置样式为「yyyyMMdd」即可,日期样式如下图所示:
      注意1:月份必须为大写的 M ,小写的 m 无法识别。
      注意2:设置日期格式时可手动输入。
  • 字体
    字体部分设置可以选择字体类型、字形、字体大小、颜色、下划线、删除线、阴影、上下标。其中上下标默认为既无上标也无下标,如下图所示:

    注意1:由于 Chrome 浏览器的限制,在 Chrome 浏览器下查看报表,最小字体为 9,就算设置了更小号的字体也会显示为 9。
    注意2:IE 浏览器 10 及 11 版本支持阴影效果,其余版本不支持阴影效果。

2.5.3.4.2.2 单元格

  • 边框
    对于单元格的边框,可设置内外边框的线条样式和颜色。如下图所示:
    注意:单元格设置边框后,最终显示效果和浏览器渲染方式有关,同一设置,不同的浏览器可能会表现出不同的效果。

    用户也可点击工具栏上的边框按钮,对单元格边框进行自定义设置,如下图所示:

  • 背景
    单元格背景可以选择纹理和图片以及设置颜色

2.5.3.4.2.3 对齐

  • 基本对齐
    对齐方式是指单元格中文本的对齐方式,可分别设置水平对齐和垂直对齐方式,如下图所示:
    水平对齐:靠左、居中、靠右、分散对齐、默认。默认数字右对齐,非数字左对齐。
    垂直对齐:靠上、居中、靠下。默认居中。

  • 高级对齐
    1 图片布局
    单元格内容为图片时,可设置图片布局为:默认、平铺、拉伸、适应,如下图所示:

    2 文本控制
    单元格文本控制格式有四种:自动换行、单行显示、单行显示(调整字体)、多行显示(调整字体)。如下图所示:

    方式 定义 示例
    自动换行 不调整字体大小根据单元格大小显示,显示不完就自动换行
    单行显示 不调整字体大小根据单元格大小显示,显示不完就不再显示
    单行显示(调整字体) 调整字体大小默认一行显示完所有文字
    多行显示(调整字体) 调整字体大小默认多行显示完所有文字
    注意:单元格必须已设置自动调整行高,再设置自动换行才有效果的。仅设置自动换行是没有效果的。
    3 文本方向
    文字排列方式有三种:自定义角度、文字竖排(从左向右)、文字竖排(从右向左),如下图所示:

    注意1:除了自定义角度为 0 时,其他情况下,浏览器端预览时,单元格内容以图片格式显示。
    注意2:特殊字符也能实现文字竖排。
    4 缩进
    用户可设置单元格文字左右缩进距离,默认左右各缩进 2px。如下图所示:

    5 间距
    用户可设置单元格段前间距、段后间距、行间距,如下图所示:
    段前间距:单元格内文字的段前距。
    段后间距:单元格内文字的段后距。
    行间距:单元格内每行文字之间的距离。

  • 预定义样式
    选中单元格后,点击「单元格属性>样式」,选择预定义样式,即可显示出设计器内置的所有预定义样式,如下图所示:
    注意:FineBI 工程未内置预定义样式,所以设计器远程连接 BI 服务器时,没有工程自带的预先定义好的样式。

2.5.3.5 数据显示方式

2.5.3.5.1 功能简介

在客户端的浏览器中,查看报表的效果都是通过对基础数据进行加工而来的。制作一张报表模板,首先需准备报表所需的基础数据。基础数据的来源方式有多种,可来源于数据库表、视图、存储过程,或是其他文本文件如Excel等等,详细请查看 数据集 ,不管数据来源于哪种方式,经过哪些预处理,最终都是返回如下图所示的一张或是多张二维表:

拥有了这些基础数据后,我们就可以对这些数据进行再加工,让其显示出我们所需的样式。其数据的显示方式有三种分别为:列表、分组、汇总,如下图:

2.5.3.5.2 列表

如上图,制作的报表展示出来的数据与数据集数据完全相同,即数据集中的每条记录无论是否重复都原封不动的展示出来,此为清单式明细列表。 在设计器中的设置方式如下:

可看到设为列表的数据列,以“S”表示,其对应英文 select。

2.5.3.5.3 分组

分为普通分组、相邻连续分组和高级分组,如下我们对比看下三者使用的不同情景。

  • 普通分组

    如上图所示,将数据列中相同项合并为一组显示的方式,我们称为分组显示。
    设计器中的设置方式如下:

  • 相邻连续分组

    像这样只有连在一起的相同数据才进行合并的方式,我们称为相邻连续分组。
    设计器中的设置方式如下:

    该分组方式的优点为:它一般是配合 SQL 中已排好序的列,对其实现的分组,这样实现的分组性能比普通分组会好一点,可解决分组慢的问题。

  • 高级分组
    高级分组又分条件分组和公式分组,点击自定义出现如下界面:

2.5.3.5.3 汇总

对于表中的数值类型字段,我们可以设置其聚合方式,如:可以对销量字段,根据地区与销售员进行汇总求和;或计算出某地区某销售员所有产品的平均销量、最大销量、最小销量、产品个数等等。这些都属于数据的汇总。

在设计器中的设置如下对销量进行数量汇总:

并将 E2单元格的父格设置为 B2,销量就可以按照销售员进行求和,如下:

预览效果如下图所示:

2.5.3.6 数据列属性

2.5.3.6.1 概述

当单元格内容为数据列时,选中单元格,右侧「单元格元素」面板就会出现数据列属性设置框,或者双击单元格也可弹出数据列属性设置对话框,如下图所示:

2.5.3.6.2 基本

数据列的基本属性包括「选择数据列、父格设置、数据设置、扩展方向」四类设置,如下图所示:

请添加图片描述
请添加图片描述

  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祈愿lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值