深入了解

关于报表的概念,目前还没有比较权威、统一和准确的定义,我们认为报表通常是指使用表格、图形或图表结合等方式来展示数据的工具和形式,目的是让人更容易看到数据和看懂数据,有助于人们基于这些数据,做出准确的判断和正确的决定。

在计算机出现之前,人们利用纸笔来记录数据,如每天将自己的收入和支出的明细记录在一个本子上,每月按收入的来源和支出的原因进行分类汇总后,再记录到另一个本子上,汇总记录的本子可以看成是体现每月的收入和支出的总体情况的报表,当计算机出现之后,人们利用计算机程序来记录明细数据和汇总数据,使用电子表格、电子图形或电子图表结合等方式来动态展示数据,我们可以称这样的数据展示形式就是报表的形式,报表通常也是展示汇总数据的工具和形式。

实现机制

数颜报表工具集由数颜报表设计器、报表浏览器和报表开发包构成,报表设计器是用来设计报表的工具,设计报表的工作输出成果是报表模板,将报表模板导入报表浏览器中,就可以在报表浏览器中查看到报表的最终呈现效果。报表模板中主要包括查询方式和展示内容,而两者都会使用到数据集,这意味着设计报表的主要工作内容就是对报表中的查询方式、展示内容和数据集进行设计。

查询方式设计是对报表中有哪些查询参数以及这些查询参数的值如何设置即查询界面进行设计,展示内容设计是对报表最终要向用户展示哪些内容进行设计,内容是以各种组件来承载,数据集设计是对报表中使用到的动态数据进行设计,声明数据来源和数据结构,以及提供哪些查询参数,可供查询时使用,方便用户可以按需加载自己想要查看的数据。

报表设计好后,保存为报表模板,经由报表引擎渲染后,就可以看到最终的报表效果。报表引擎有数据集加载器、组件渲染器等核心部件,数据集加载器访问数据库,执行SQL,获取存储在业务数据库中的数据,生成数据集,供组件渲染器使用,组件渲染器呈现组件外观,当组件使用了数据集中全部或部分数据时,组件渲染器会按照组件设计时指定的规则如位置和样式等,把数据呈现出来。

报表引擎支持三种渲染模式:设计模式、预览模式和运行模式,在设计模式下,加载数据集的模拟数据,可以看到报表未经全面渲染的仿真效果,在预览模式和运行模式下都可以看到报表已经全面渲染的真实效果,不同的是,渲染报表时所用到的数据来源不同,预览模式下用到的是数据集的模拟数据,不支持动态查询,运行模式下用到的则是数据集的真实数据,支持动态查询,报表设计器支持三种模式,报表浏览器仅支持运行模式。

报表引擎的内核基于 Java 和 MySQL 实现,提供了设计报表和渲染报表的能力,报表引擎中的数据集加载器具备加载主流数据库数据的能力,这使得渲染报表时需要的业务数据可以存储在 MySQL、Oracle、SQL Server、PostgreSQL、ClickHoused 等数据库中,存储业务数据的数据库,我们称之为报表业务数据库,存储报表引擎数据的数据库,我们称之为报表引擎数据库。

当前,报表引擎数据库仅支持 MySQL(最低版本:5.7),报表业务数据库仅支持 MySQL、Oracle、SQL Server、PostgreSQL、ClickHouse,后续,我们将不断扩展报表引擎数据库和报表业务数据的支持范围,并同步更新我们的文档。

设计内容

数颜报表设计器以消除报表设计难度为原则,把报表设计内容简化成定义报表中使用了哪些数据集、基于这些数据集提供了哪些查询方式和展示内容。

报表模板

报表模板是报表设计工作的输出成果,以文件形式存储,一个报表模板定义了一种报表中使用了哪些数据集、基于这些数据集提供了哪些查询方式和展示内容。

数据集

数据集是具有相同属性和性质的数据行的集合,这些数据行来自数据库中的一张表,或多张表的字段拼接而成,是报表中动态数据的来源,使用数据集之前,必须先定义数据集,指明数据集所属的数据库、数据加载时要执行的 SQL 和返回的数据字段、查询时输入的参数,即数据集的数据来源、查询 SQL、查询参数和返回字段。报表在设计模式和预览模式下,只会加载数据集的模拟数据,不会从数据库加载真实数据,只有在运行模式下,才会从数据库加载真实数据,在定义数据集时,推荐把模拟数据的生成规则也定义好,并预先生成模拟数据,以供报表引擎在设计模式和预览模式下,加载模拟数据,渲染出最逼真的所见即所得的报表效果。

查询方式

查询方式是报表提供哪些查询参数和这些查询参数的设值方式即查询界面的统称,抽象的看,查询方式由查询参数、输入查询参数的查询窗口和设定查询参数值的查询方案构成。

查询参数

查询参数是数据集中提供外部设置查询条件的凭据,查询方式中使用的查询参数来自某个或某些数据集。

查询窗口

查询窗口即查询界面,是设置查询参数值的用户界面。

查询方案

查询方案是多个查询参数的组合,这些查询参数已经设定默认值,也可以由用户在查询时设置为其他值。

展示内容

展示内容是报表向用户展示的各种内容,各种内容是以各种组件的形式来加载和展示。

组件

组件是加载和展示报表中局部内容的具有相同的外观、属性和特性的控件,当前提供文本、图片、字段、参数、表格、图表、网格、面板等组件。

文本

文本组件是用于在报表中展示固定文本的组件。

图片

图片组件是用于在报表中展示固定图片的组件。

字段

字段组件是用于在报表中展示数据集字段的组件,展示的信息来自数据集首条记录中特定字段的值。

参数

参数组件是用于在报表中展示数据集查询参数的组件,展示的信息是数据集特定查询参数的当前值。

表格

表格组件是用于在报表中以表格形式展示数据集的组件,展示的信息是数据集已经查询过滤的数据。

图表

图表组件是用于在报表中以统计图形式展示数据集的组件,展示的信息是数据集已经查询过滤的数据,支持柱状图、圆饼图、圆环图、曲线图、坡面图、漏斗图、散点图和雷达图。

网格

网格组件是用于在报表中以表格的形式装载其他组件的容器类组件,网格中每个单元格可以装载一个组件,能够装载的组件有文本、图片、字段、参数和图表。

面板

面板组件是用于在报表中装载其他组件的容器类组件,每个面板可以装载一个组件,可以装载的组件有文本、图片、字段、参数、表格、图表和网格。

使用限制

数颜报表设计器和报表浏览器采用 B/S 架构,报表引擎内核基于 Java 和 MySQL 实现,可以在 Windows 和 Linux 操作系统中安装和运行,但在安装和运行之前,必须确保操作系统中已经安装好 Java 运行环境、可以访问报表引擎数据库和报表业务数据库。

  • 安装和运行报表设计器和报表浏览器的服务器操作系统可以是 Windows 或 Linux
  • 服务器必须安装 JDK(或JRE,最低版本:1.8)
  • 服务器可以访问报表引擎数据库:MySQL(最低版本:5.7)
  • 服务器可以访问报表业务数据库:MySQL、Oracle、SQL Server、PostgreSQL、ClickHouse

数颜报表设计器需要安装产品使用许可证后才能正常运行和使用,且只能在授权单位内部使用,不得对外使用(包括但不限于下属法人单位),可以通过官方渠道购买许可证,报表浏览器和报表开发包都不需要购买许可证,可以免费使用,也可以对外使用。

使用难点

报表设计工作内容就是对报表的查询方式、展示内容和使用到的数据集进行设计,数据集设计是唯一有技术难度的工作,需要熟悉数据库结构和具备 SQL 编写能力,这对于软件供应商而言,设计报表是非常简单的事,只要熟悉数据库结构和具备 SQL 编写能力,设计报表就易如反掌、手到擒来,但对于非软件供应商而言,数据集设计工作可能面临两大困难:不熟悉数据库结构、不具备 SQL 编写能力。

  • 熟悉数据库结构

对于非软件供应商的报表设计人员而言,如果不熟悉数据库结构,就不能设计数据集,可以要求软件供应商,提供数据库结构说明文档。

  • 具备 SQL 编写能力

对于非软件供应商的报表设计人员而言,如果不具备 SQL 编写能力,就不能设计数据集,可以寻求数颜技术团队或软件企业的帮助,完成 SQL 编写工作。

使用方法

请点击链接:快速开始操作手册开发指南常见问题,仔细研读相关内容。