CN112818043A - 一种基于json自描述的数据源报表生成方法 - Google Patents
一种基于json自描述的数据源报表生成方法 Download PDFInfo
- Publication number
- CN112818043A CN112818043A CN202110104539.1A CN202110104539A CN112818043A CN 112818043 A CN112818043 A CN 112818043A CN 202110104539 A CN202110104539 A CN 202110104539A CN 112818043 A CN112818043 A CN 112818043A
- Authority
- CN
- China
- Prior art keywords
- data
- report
- json
- description
- self
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Abstract
本发明公开了一种基于JSON自描述的数据源报表生成方法,包括以下步骤:定义报表规则,通过报表设计器对JSON数据报表数据来源、字段描述、处理规则和报表展示进行定义和配置;报表数据生成,根据定义的报表规则利用数据查询器获取到数据源的JSON数据,并在获取到的数据源的头部添加对该数据源JSON数据的描述信息,形成JSON自描述数据文件;报表生成,获取JSON自描述数据文件,并读取该文件中JSON数据的meta‑data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。本发明利用JSON扩展性、跨语言的通用性特点,将其作为报表通用数据源,加上自描述信息,可以实现异构环境下多数据源的报表设计和制作,以及数据内容与报表设计、展示分离。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及一种基于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、数据内容与报表设计、展示分离。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
Claims (5)
1.一种基于JSON自描述的数据源报表生成方法,其特征在于,包括以下步骤:
步骤一:定义报表规则,通过报表设计器对JSON数据报表数据来源、字段描述、处理规则和报表展示进行定义和配置;
步骤二:报表数据生成,根据定义的报表规则利用数据查询器获取到数据源的JSON数据,并在获取到的数据源的头部添加对该数据源JSON数据的描述信息,形成JSON自描述数据文件;
步骤三:报表生成,获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
2.根据权利要求1所述的一种基于JSON自描述的数据源报表生成方法,其特征在于,所述步骤一具体包括以下子步骤:
S101,数据源定义,根据数据访问类型定义数据库SQL、WEB REST接口和Non-SQL数据源;
S102,元数据定义,获取JSON数据,根据报表的业务规则的需要,对JSON数据进行元数据的内容进行定义;
S103,报表展示定义,以UI的方式配置报表、字段的元数据列表格式,以及图表和简化查询方式。
3.根据权利要求2所述的一种基于JSON自描述的数据源报表生成方法,其特征在于,所述步骤S101中的数据访问类型包括:用户输入的jdbc连接信息、数据访问sql,或有效的URL访问地址。
4.根据权利要求1所述的一种基于JSON自描述的数据源报表生成方法,其特征在于,所述步骤二中还包括多数据源处理过程:对报表定义的多数据源,对数据源中相同“id”的列,按照“merge”规则,进行聚合,并将聚合后的数据传递给报表生成器。
5.一种基于JSON自描述的数据源报表生成系统,其特征在于,包括报表设计器,用于定义和配置报表的数据源、字段描述、处理规则和报表展示规则;数据查询器,用于获取报表中的数据源JSON数据并进行分析处理生成JSON自描述数据文件;报表生成器,用于从数据查询器中获取JSON自描述数据文件,并读取该文件中JSON数据的meta-data信息同时进行报表的计算、聚合,以及按照报表设计器定义的报表展示规则显示报表数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110104539.1A CN112818043A (zh) | 2021-01-26 | 2021-01-26 | 一种基于json自描述的数据源报表生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110104539.1A CN112818043A (zh) | 2021-01-26 | 2021-01-26 | 一种基于json自描述的数据源报表生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112818043A true CN112818043A (zh) | 2021-05-18 |
Family
ID=75859394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110104539.1A Pending CN112818043A (zh) | 2021-01-26 | 2021-01-26 | 一种基于json自描述的数据源报表生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818043A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114118018A (zh) * | 2021-11-25 | 2022-03-01 | 福建博思软件股份有限公司 | 一种跨平台的电子报表的实现方式 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760370A (zh) * | 2014-12-14 | 2016-07-13 | 云南电力调度控制中心 | 一种插件式报表框架技术 |
CN106547729A (zh) * | 2016-12-01 | 2017-03-29 | 长城计算机软件与系统有限公司 | 一种数据报表的动态生成方法及系统 |
CN106649225A (zh) * | 2016-12-30 | 2017-05-10 | 冶金自动化研究设计院 | 一种基于json自定义的报表生成系统及方法 |
CN107977351A (zh) * | 2017-12-28 | 2018-05-01 | 平安科技(深圳)有限公司 | 电子报表生成方法、装置、计算机设备及存储介质 |
CN110618983A (zh) * | 2019-08-15 | 2019-12-27 | 复旦大学 | 基于json文档结构的工业大数据多维分析与可视化方法 |
-
2021
- 2021-01-26 CN CN202110104539.1A patent/CN112818043A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760370A (zh) * | 2014-12-14 | 2016-07-13 | 云南电力调度控制中心 | 一种插件式报表框架技术 |
CN106547729A (zh) * | 2016-12-01 | 2017-03-29 | 长城计算机软件与系统有限公司 | 一种数据报表的动态生成方法及系统 |
CN106649225A (zh) * | 2016-12-30 | 2017-05-10 | 冶金自动化研究设计院 | 一种基于json自定义的报表生成系统及方法 |
CN107977351A (zh) * | 2017-12-28 | 2018-05-01 | 平安科技(深圳)有限公司 | 电子报表生成方法、装置、计算机设备及存储介质 |
CN110618983A (zh) * | 2019-08-15 | 2019-12-27 | 复旦大学 | 基于json文档结构的工业大数据多维分析与可视化方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114118018A (zh) * | 2021-11-25 | 2022-03-01 | 福建博思软件股份有限公司 | 一种跨平台的电子报表的实现方式 |
CN114118018B (zh) * | 2021-11-25 | 2024-02-06 | 福建博思软件股份有限公司 | 一种跨平台的电子报表的实现方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080208805A1 (en) | Apparatus and method for remote querying of data sources | |
US20080271127A1 (en) | Apparatus and method for creating stand-alone business intelligence widgets within an authentication framework | |
US9746932B2 (en) | Gesture inferred vocabulary bindings | |
EP1482418A1 (en) | A data processing method and system | |
US9753960B1 (en) | System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria | |
GB2465378A (en) | Image based search system and method | |
AU2011247915B2 (en) | Enhancing an inquiry for a search of a database | |
KR20160053933A (ko) | 스마트 검색 정제 기법 | |
CA2720522C (en) | Data viewer management | |
US10867337B2 (en) | Creating secure social applications with extensible types | |
US10313421B2 (en) | Providing Odata service based on service operation execution flow | |
CN110955803A (zh) | 基于图数据库的关系图谱的绘制方法、装置、设备及介质 | |
CN114036177A (zh) | 基于组件的智能报表的设计与实现方法 | |
CN112818043A (zh) | 一种基于json自描述的数据源报表生成方法 | |
US8392358B2 (en) | Temporal extent considerations in reporting on facts organized as a dimensionally-modeled fact collection | |
CN110716955A (zh) | 一种快速响应数据查询请求的方法和系统 | |
CN110019433B (zh) | 一种报表查询方法和装置 | |
US11609924B2 (en) | Database query execution on multiple databases | |
Moncrieff et al. | Integrating geo web services for a user driven exploratory analysis | |
Zainab et al. | Malaysian scholarly e-journals: focus on EJUM, a journal management system | |
CA2663859C (en) | Apparatus and method for updating a report through view time interaction | |
WO2022178931A1 (zh) | 一种查询动态列的实现方法、装置及设备 | |
US20230367786A1 (en) | Unified cloud storage data processing framework for multi-source systems | |
CN115952232A (zh) | 一种云数据可视化方法、装置、终端及存储介质 | |
KR20240031594A (ko) | 통합 컨텐츠 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |
|
RJ01 | Rejection of invention patent application after publication |