一种基于JSON自描述的数据源报表生成方法
文献发布时间:2023-06-19 11:02:01
技术领域
本发明涉及计算机软件领域,尤其涉及一种基于JSON自描述的数据源报表生成方法。
背景技术
报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。 在没有计算机以前,人们利用纸和笔来记录数据,比如:民间常常说的豆腐帐,就是卖豆腐的每天将自己的卖出的豆腐记在一个本子上,然后每月都要汇总算算,这种情况下,报表数据和报表格式是紧密结合在一起的,都在同一个本子上。数据也只能有一种几乎只有记帐的人才能理解的表现形式,且这种形式难于修改。
当计算机出现之后,人们利用计算机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离,用户可以只修改数据,或者只修改格式。报表分类EXCEL、WORD等编辑软件:它们可以做出很复杂的报表格式,但是由于它们没有定义专门的报表结构来动态的加载报表数据,所有这类软件中的数据都是已经定义好的,静态的,不能动态变化的。它们没有办法实现报表软件的“数据动态化”特性。
随着计算机技术的发展,在目前的实际应用中,主要采用三种方法来生成报表。第一种是采用人工填写Excel方式来生成报表,这种报表格式比较自由,主要以人工填写为主,效率比较低,不具备历史数据查阅。第二种是在各种应用系统中,将数据库中数据灌入到硬编码的表格中,生成可查看的报表,此方法的可动态查看历史数据,但不能随意的更改报表的显示方式。第三种是将报表的显示抽象成模板,模板可自由构造,前台和后台通过模板的分析,将数据填充到前台由模板生成的报表中。
现有的报表系统生成报表的JSON是固定的,扩展性不好,且报表不能合并输出,不能支持多数据源数据融合。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于JSON自描述的数据源报表生成方法。
本发明的目的是通过以下技术方案来实现的:
一种基于JSON自描述的数据源报表生成方法,包括以下步骤:
步骤一:定义报表规则,通过报表设计器对JSON数据报表数据来源、字段描述、处理规则和报表展示进行定义和配置;
步骤二:报表数据生成,根据定义的报表规则利用数据查询器获取到数据源的JSON数据,并在获取到的数据源的头部添加对该数据源JSON数据的描述信息,形成JSON自描述数据文件;
步骤三:报表生成,获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
具体的,所述步骤一具体包括以下子步骤:
S101,数据源定义,根据数据访问类型定义数据库SQL、WEB REST接口和Non-SQL数据源;
S102,元数据定义,获取JSON数据,根据报表的业务规则的需要,对JSON数据进行元数据的内容进行定义;
S103,报表展示定义,以UI的方式配置报表、字段的元数据列表格式,以及图表和简化查询方式。
具体的,所述步骤S101中的数据访问类型包括:用户输入的jdbc连接信息、数据访问sql,或有效的URL访问地址。
具体的,所述步骤二中还包括多数据源处理过程:对报表定义的多数据源,对数据源中相同“id”的列,按照“merge”规则,进行聚合,并将聚合后的数据传递给报表生成器。
一种基于JSON自描述的数据源报表生成系统,包括报表设计器,用于定义和配置报表的数据源、字段描述、处理规则和报表展示规则;数据查询器,用于获取报表中的数据源JSON数据并进行分析处理生成JSON自描述数据文件;报表生成器,用于从数据查询器中获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
本发明的有益效果:本发明利用JSON扩展性、跨语言的通用性特点,将其作为报表通用数据源,加上自描述信息,达成通用报表设计的方案,可以实现异构环境下多数据源的报表设计和制作,以及数据内容与报表设计、展示分离。
附图说明
图1是本发明的方法实现流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,一种基于JSON自描述的数据源报表生成方法,包括以下步骤:
步骤一:定义报表规则,通过报表设计器对JSON数据报表数据来源、字段描述、处理规则和报表展示进行定义和配置;
步骤二:报表数据生成,根据定义的报表规则利用数据查询器获取到数据源的JSON数据,并在获取到的数据源的头部添加对该数据源JSON数据的描述信息,形成JSON自描述数据文件;
步骤三:报表生成,获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
具体的,步骤一具体包括以下子步骤:
S101,数据源定义,根据数据访问类型定义数据库SQL、WEB REST接口和Non-SQL数据源;
S102,元数据定义,获取JSON数据,根据报表的业务规则的需要,对JSON数据进行元数据的内容进行定义;
S103,报表展示定义,以UI的方式配置报表、字段的元数据列表格式,以及图表和简化查询方式。
具体的,所述步骤S101中的数据访问类型包括:用户输入的jdbc连接信息、数据访问sql,或有效的URL访问地址。
报表设计,用户通过/报表设计器/完成J对SON数据报表数据来源、字段描述、处理规则和报表展示的定义。
数据源定义,本方案支持关系数据库SQL、WEB REST接口、Non-SQL数据源的定义,用户输入jdbc连接信息、数据访问sql,或有效的URL访问地址,即可获取有效的json格式数据,并验证和展示。
元数据定义,数据源定义中获取到JSON数据后,就可以根据报表业务规则的需要,对JSON数据进行元数据定义,内容包含如下:1、数据标识:来源、字段id,字段类型等;2、报表展示:是否显示、标题、字段排序、显示格式、查询过滤等;3、 报表计算:聚合函数。
报表展示定义,本方案提供默认报表展示的模板,根据报表、字段的元数据已列表的方式进行展示,并导出为excel文件;
报表设计器也以UI的方式,提供用户报表展示更多的选择,例如图表、交互查询方式等。
报表数据生成,通过用户定义和配置,/数据查询器/在获取到数据源的json数据后,在数据头增加对该数据源json数据的描述信息,形成/JSON自描述数据文件/:
普通JSON数据格式
/** */
{
"name": "George Washington",
"birthday": "February 22, 1732",
"address": "Mount Vernon, Virginia, United States"
}
增加了元数据的自描述JSON格式
{
"meta-data" {
"id": "json数据标识"
"colums": {
“name”: {
"title": "姓名"
"column-id": “name”,
"data-type": “string”,
“merge”: "false",
"format": ""
},
“birthday”: {
"title": "出生日期"
"column-id": “birthday”,
"data-type": “date”,
“merge”: "false",
"format": "YYYY-MM-DD"
},
“address”: {
"title": "地址"
"column-id": “address”,
"data-type": “string”,
“merge”: "false",
"format": ""
},
“age”: {
"title": "年龄"
"column-id": “age”,
"data-type": “int”,
“merge”: "avg", //avg、sum、max、min等统计函数
"format": ""
},
}
}
“data” : {
"name": "George Washington",
"birthday": "February 22, 1732",
"address": "Mount Vernon, Virginia, United States".
"Age": "26"
}
}
多数据源处理,如果报表定义了多数据源,则在本步骤中,对相同“id”的列,按照“merge”规则,进行聚合,并将聚合后的数据传递给报表生成器。
一种基于JSON自描述的数据源报表生成系统,包括报表设计器,用于定义和配置报表的数据源、字段描述、处理规则和报表展示规则;数据查询器,用于获取报表中的数据源JSON数据并进行分析处理生成JSON自描述数据文件;报表生成器,用于从数据查询器中获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
一般情况下,使用报表工具都是直接连接数据库,利用SQL查询报表数据。但JSON数据应用的范围愈来愈广,特别是互联网、三方系统接口对接,JSON数据格式,以其良好的扩展性,得到广泛的应用。
本专利就是利用JSON扩展性、跨语言的通用性特点,将其作为报表通用数据源,加上自描述信息,达成通用报表设计的方案,可以解决以下问题:
1、解决异构环境下,多数据源的报表设计和制作。
2、数据内容与报表设计、展示分离。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
- 一种基于JSON自描述的数据源报表生成方法
- 一种基于JSON自定义的报表生成系统及方法