CN116468010A - 报表生成方法、装置、终端及存储介质 - Google Patents
报表生成方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN116468010A CN116468010A CN202310171452.5A CN202310171452A CN116468010A CN 116468010 A CN116468010 A CN 116468010A CN 202310171452 A CN202310171452 A CN 202310171452A CN 116468010 A CN116468010 A CN 116468010A
- Authority
- CN
- China
- Prior art keywords
- report
- cell
- cells
- template
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 210000004027 cell Anatomy 0.000 claims description 189
- 238000013461 design Methods 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 21
- 210000004460 N cell Anatomy 0.000 claims description 8
- 238000009877 rendering Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000007639 printing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000010261 cell growth Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种报表生成方法、装置、终端及存储介质。该方法包括:根据报表扩展规则文件生成报表模板;其中,报表扩展规则文件包括单元格定义和单元格关联关系,单元格定义包括维度字段和指标字段,维度字段用于指示单元格的名称,指标字段用于指示单元格的数值类型,单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;根据单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至报表模板,得到初始报表;根据单元格关联关系,计算初始报表中各子格的值,得到目标报表;其中,子格为引用其他单元格的单元格。本发明能够根据用户提供的各类报表格式,自动对应生成报表,具有更强的灵活性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种报表生成方法、装置、终端及存储介质。
背景技术
报表是数据信息的浓缩展示,在企业中,报表对于决策的支持至关重要。通过对企业经营数据进行统计分析,可以从多角度、全方位地洞察企业生产运营状况,从而进行下一步的决策。优秀的报表系统可以对数据进行过滤、统计、合并、分析,并为之提供全面丰富的展现形式,为决策者洞察数据走势提供良好的参考依据。
目前为简化报表制作过程,存在一些自动生成报表的技术,通常的实现方式是在样式固定的报表模板中放置表格元素。此类技术虽然操作简单,但是格式僵化,不能满足复杂场景下的用户需求。
发明内容
本发明实施例提供了一种报表生成方法、装置、终端及存储介质,以解决自动生成报表的格式不满足用户需求的问题。
第一方面,本发明实施例提供了一种报表生成方法,包括:
根据报表扩展规则文件生成报表模板;其中,报表扩展规则文件包括单元格定义和单元格关联关系,单元格定义包括维度字段和指标字段,维度字段用于指示单元格的名称,指标字段用于指示单元格的数值类型,单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;
根据单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至报表模板,得到初始报表;
根据单元格关联关系,计算初始报表中各子格的值,得到目标报表;其中,子格为引用其他单元格的单元格。
在一种可能的实现方式中,根据单元格定义,在用户提供的原始数据库中查找需要的数据并进行拷贝至报表模板,得到计算前报表包括:
针对任一维度字段,在原始数据库中查找与属于该维度字段的指标字段对应的记录,得到各维度字段的记录查找结果和记录查找数量;
基于记录查找数量,对报表模板进行扩展,以使扩展后的报表模板中,各指标字段对应的单元格数量与记录查找数量相同;
将各个记录查找结果分别填充至该指标字段对应的单元格。
在一种可能的实现方式中,基于记录查找数量,对报表模板进行扩展包括:
若该维度字段所在位置为列标题,则向下对报表模板扩展N个单元格;其中,N为记录查找数量;
若该维度字段所在位置为行标题,则向右对报表模板扩展N个单元格。
在一种可能的实现方式中,在根据单元格关联关系,计算计算前报表中各单元格的值之后,该方法还包括:
针对每个单元格,基于该单元格的值更新该单元格的子格的值。
在一种可能的实现方式中,在根据报表扩展规则文件生成报表模板之前,该方法还包括:
获取报表设计web页;
将报表设计web页转化为JSON格式,得到报表扩展规则文件。
在一种可能的实现方式中,获取报表设计web页包括:
展示报表设计界面;
获取用户在报表设计界面输入的设计指令,得到报表设计web页;其中,报表设计界面包括多种组件模块,每个组件模块对应一个报表元素,设计指令包括拖拽操作和单元格定义输入操作。
在一种可能的实现方式中,在得到目标报表之后,该方法还包括:
获取表格样式信息;
按照表格样式信息对目标报表进行渲染展示。
第二方面,本发明实施例提供了一种报表生成装置,包括:
模板生成模块,用于根据报表扩展规则文件生成报表模板;其中,报表扩展规则文件包括单元格定义和单元格关联关系,单元格定义包括维度字段和指标字段,维度字段用于指示单元格的名称,指标字段用于指示单元格的数值类型,单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;
拷贝模块,用于根据单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至报表模板,得到初始报表;
计算模块,用于根据单元格关联关系,计算初始报表中各单元格的值,得到目标报表;其中,子格为引用其他单元格的单元格。
第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
本发明提供的报表生成方法、装置、终端及存储介质的有益效果在于:
本发明在用户提供的报表扩展规则文件中提取生成报表的格式要素,自动生成用户所需格式的报表模板,然后将用户选取的目标数据填充到报表模板中,按照模板规则对数据进行处理,得到最终展示给用户的报表。本发明能够根据用户提供的各类报表格式,自动对应生成报表,相比仅能根据固定报表模板生成报表的现有技术,具有更强的灵活性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的报表生成方法的实现流程图;
图2是本发明一实施例提供的报表生成器模块的工作流程图;
图3是本发明一实施例提供的报表填报模块的工作流程图;
图4是本发明一实施例提供的原始数据库的数据结构图;
图5是本发明一实施例提供的报表设计的操作流程图;
图6是本发明一实施例提供的目标报表;
图7是本发明一实施例提供的报表生成装置的结构示意图;
图8是本发明一实施例提供的终端的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
近年来,随着网络技术的不断发展,传统的静态数据报表无法满足用户对于数据探究的诉求,中国式报表凭借其格式简洁大方,又符合国人的思维方式等特点,深受行业人员喜爱。为此,对其在信息处理中的应用研究与创新迭代层出不穷。而动态中国式报表不仅实现了报表数据的动态呈现,而且可以展示复杂的报表样式和功能,如此动态的生成中国式报表,使得表结构设计与数据信息结构分离。如果只是表结构有所变化,只需重新定义表结构样式,无需重新维护编写程序和设计报表样式,提高了设计报表人员的效率,增强了报表的兼容性和适应性。
随着移动大数据的蓬勃发展,“实时计算”不断地推陈出新,越来越多的大数据计算组件层出不穷,实时计算大批量数据变得可能。因此,对于数据挖掘和数据探索地相关研究也不断深入,越来越多的企业逐步开始挖掘潜藏在历史数据背后的价值,通过数据挖掘指导生产实践,助力企业快速增产创收,实现利润迭代增长。
参见图1,其示出了本发明实施例提供的报表生成方法的实现流程图,详述如下:
步骤101,根据报表扩展规则文件生成报表模板;其中,报表扩展规则文件包括单元格定义和单元格关联关系,单元格定义包括维度字段和指标字段,维度字段用于指示单元格的名称,指标字段用于指示单元格的数值类型,单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系。
在本实施例中,报表扩展规则文件中包含了用户需要生成报表的格式,主要通过单元格定义和单元格关联关系体现。单元格定义还可以包括对指标字段进行运算的逻辑,例如聚合方式、计算规则、排序规则、分组规则等逻辑,即以指标字段所对应的数据为基础进行运算并展示。单元格关联关系则是表示单元格之间进行运算的逻辑。
报表扩展规则文件中还可以包括公式定义、表样式定义和变量定义。其中,报表公式定义主要是针对报表模板所带的运算公式以外的公式进行定义的,可以选定单元格进行自定义计算,随着单元格数据的变化,填表时可自动进行计算,避免因手工填报引起数据不准确。表样式设计是指用户可以自定义报表的数据格式和布局等。例如文本的颜色、字体、框线、对齐方式等。变量定义是指在用户填写报表时,出现一些常见的内容,比如报表名称、填报单位、填报日期等。可以记录到系统环境变量中,用户填写时系统变量自动转换为相应的信息。为了避免用户的重复操作,可自定义变量函数。表样式定义包括了行宽、列宽、行号、行高、列号、字段内容、扩展方式、名称、左父格名称和上父格名称、单元格的合并信息、单元格文字居中、字号大小、边框信息等。
根据报表扩展规则文件可生成满足用户需求的报表模板。用户提供的报表扩展规则文件可以只包含维度字段或表样式设计内容,根据此类报表扩展规则文件生成对应的报表模板后,用户可以向处理系统发送报表预览页面请求,系统接收到请求后展示报表模板,然后用户在此报表模板的基础上进一步填写报表内容,增加或调整单元格定义、单元格关联关系等内容。
步骤102,根据单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至报表模板,得到初始报表。
在本实施例中,原始数据库中存储有用于制作报表的原始数据。语义关联信息是标识原始数据库中数据与单元格定义对应关系的信息。可以利用预设的几类聚合函数操作模型,包括列表、分组、汇总、统计数量、最大值、最小值和平均值等函数,在原数数据库中查找到符合单元格定义的数据并进行拷贝。
在拷贝数据后,还可以对原始数据库中各类数据的数量进行监控,如果已拷贝的数据在原始数据库中有变动,则可以对应调整报表中的数据,确保报表中的数据与原始数据库中的数据保持一致。
将数据拷贝至报表模板后,若单元格定义仅包含了维度字段和/或指标字段,不包含指标字段的运算逻辑,则可以直接在初始报表的基础上执行步骤103;若单元格定义中还包括对指标字段进行运算的逻辑规则,则需要按照这些逻辑规则进行运算,待所有的单元格都计算完成后,再执行步骤103。
步骤103,根据单元格关联关系,计算初始报表中各子格的值,得到目标报表;其中,子格为引用其他单元格的单元格。
在本实施例中,子格的值依赖于其所引用的单元格的值,即存在继承关系,每个子格所引用的单元格可称为该子格的父格。只有在各父格的值确定之后才可计算子格的值。以实现各单元格的值均准确。
在一种可能的实现方式中,根据单元格定义,在用户提供的原始数据库中查找需要的数据并进行拷贝至报表模板,得到计算前报表包括:
针对任一维度字段,在原始数据库中查找与属于该维度字段的指标字段对应的记录,得到各维度字段的记录查找结果和记录查找数量;
基于记录查找数量,对报表模板进行扩展,以使扩展后的报表模板中,各指标字段对应的单元格数量与记录查找数量相同;
将各个记录查找结果分别填充至该指标字段对应的单元格。
在本实施例中,单元格的扩展是由单元格从一变多的现象所产生的,这种现象大多出现在数据单格之间。一个单元格的值是抽象的,尤其是对于传统的数据库单元格而言,单元格内填充的值往往对应于数据库中的某一列,用户操作之前并不确定检索数据库后会返回多少条记录。然而,一个单元格往往是位于某一行列上的一个单位。如果查询后的记录数大于1,则需要将该单元格扩展至一行上的多个单元格或者一列上的多个单元格。
在一种可能的实现方式中,基于记录查找数量,对报表模板进行扩展包括:
若该维度字段所在位置为列标题,则向下对报表模板扩展N个单元格;其中,N为记录查找数量;
若该维度字段所在位置为行标题,则向右对报表模板扩展N个单元格。
在本实施例中,具体由配置的扩展方式决定单元格扩展走向.
在一种可能的实现方式中,在根据单元格关联关系,计算计算前报表中各单元格的值之后,该方法还包括:
针对每个单元格,基于该单元格的值更新该单元格的子格的值。
在本实施例中,对于某一个单元格进行扩展后,依赖于该单元格的子格也需要进行扩展,才能实现数据间的一一对应关系。单元格进行扩展之后,扩展出来的每个单元格以及依赖于此单元格的子格之间的继承关系也需要进行同步刷新,才能保证数据间的一一匹配。
在一种可能的实现方式中,在根据报表扩展规则文件生成报表模板之前,该方法还包括:
获取报表设计web页;
将报表设计web页转化为JSON格式,得到报表扩展规则文件。
在本实施例中,业务人员设计报表渲染样式布局后产生对应的报表设计web页,web页中包含的报表扩展规则通过前端转换成JSON((JavaScript Object Notation))文件。后台处理器对JSON文件进行解析,得到报表的扩展样式、扩展规则、父单元格坐标等信息,通过报表计算引擎将完成计算的报表存入缓存数据库(包括对原始数据的拷贝),随后将计算结果按照预设的输出类型进行结果展示。
在一种可能的实现方式中,获取报表设计web页包括:
展示报表设计界面;
获取用户在报表设计界面输入的设计指令,得到报表设计web页;其中,报表设计界面包括多种组件模块,每个组件模块对应一个报表元素,设计指令包括拖拽操作和单元格定义输入操作。
在本实施例中,报表元素可以包含有预存的单元格定义、单元格关联关系,各组件模块展示在报表设计界面中,用户仅需要进行拖拽操作,即可选中需要的组件模块并放置在需要的位置,实现报表设计。用户还可以通过选中特定的单元格,通过拖拽各单元格实现单元格的合并、扩展。若用户需要增加特定的单元格定义、计算公式等内容,也可以直接在报表设计界面中输入。
在一种可能的实现方式中,在得到目标报表之后,该方法还包括:
获取表格样式信息;
按照表格样式信息对目标报表进行渲染展示。
在本实施例中,表格样式信息可以存储于报表扩展规则文件中。后台处理器计算完成目标报表的数值后,将目标报表的数值信息发送至前端,前端根据表格样式信息对目标报表的数值信息进行渲染展示,形成符合用户设计的报表。
在一个具体的实施例中,上述步骤可以基于报表生成系统实现,该系统基于建模软件、面对对象程序设计语言、数据库软件、POI以及共享存储服务Amazon S3构建,主要分为报表模板设计器模块、报表生成器模块,报表填报模块和报表显示处理模块。
1、报表模板设计器模块
本报表系统利用报表设计器完成对报表的设计,包括了公式定义、表样式定义、变量定义、语义关联定义四部分组成。
2、报表生成器模块
报表生成器首先接收并解析系统中传输的json文件,通过对json文件中的数据进行解析,再回传到浏览器端。解析系统中报表内容是报表生成器模块主要负责的任务。报表生成流程如图2所示。
当报表预览页面被请求加载后,系统会对参数信息进行构造,读取需要预览的计算前报表样式信息(报表行列数,以及每一个Cell信息以及排序、映射和分组规则),得到缓存的计算前报表信息后,对报表中的每一个单元格按照单元格预设的属性信息进行计算,包括聚合方式、计算规则、排序规则、分组规则等逻辑,待完成所有的单元格计算后,重新对单元格按照扩展方式进行计算,将完成计算的报表进行表格信息填充后,将结果报表信息返回到前端,前端接受到报表信息后,对报表结构进行拆解,渲染到前端页面上。
3、报表填报模块
当用户登录到系统页面后,获取报表填报任务,当用户打开报表后,会自动对填报的信息进行验证,如果填报无误,则完成后弹出确认信息,是否要提交报表给上级部门;如果填报信息有误,则返回错误原因,回退重新填写。填报流程如图3所示。
4、报表显示处理模块
当填报信息完成数据预览后,为方便业务人员使用,对数据可选择导出为excel、word或pdf,对于待打印的数据项,可在设置页边距、页大小等打印信息后在线进行打印输出。
基于此系统生成报表的具体步骤如下:
(1)配置数据源导入数据
通过配置数据源信息,连接到远端数据库表数据,选择对应要操作的数据报表,预览前200条数据后,自定义该数据表在系统中的名称后,保存该数据表。
(2)对单元格属性进行配置
对单元格属性进行配置,可以对单元格的字体颜色、字体大小、边框样式、单元格属性(简单文本类型、表达式类型、数据集类型和斜表头类型)进行配置。
(3)设置计算扩展方向及聚合方式
对单元格数据设置扩展方向(比如向下扩展,向右扩展)。指定计算父格名称(A3、B2)等。若单元格为数据集类型,设置单元格聚合方式(列表、分组、汇总、求和、最大值、最小值和平均值),设置排序方式(不排序、正序和倒序)。
(4)预览计算后数据报表
点击预览按钮后,平台会针对单元格配置项,对原始数据报表逐行按照计算规则、扩展方式进行解析计算,重新生成报表样式,并以表格的形式展现在浏览器上。
(5)平台数据导出或在线打印
可在预览页面,灵活选择导出方式(导出为excel、word或pdf)。同时,用户配置了页边距,页大小,纸张方向等打印信息后可进行报表打印输出。
由上可知,本发明相对于现有技术具有以下的优点和效果:
1、基于Java语言开发,系统具备良好的扩平台型。
2、采用JSON作为前后端数据传输格式,可阅读性高,兼容性广泛。设计支持多种报表样式的模板文件,方便业务人员展示。
3、支持多种数据源,包括MySQL、MS Server、DB2以及Oracle。
4、可以导出为html,实现基于J2EE的web报表应用的安装和部署。
5、平台支持将报表文件保存到简单对象存储服务中,从远端对生成报表进行管理。
6、支持自定义数据筛选、数据映射、数据格式类型转换(日期类型或数值类型)等。
7、类Excel单元格命名风格。采用Excel中单元格的命名风格。利用单元格在行列上所处的位置为单元格进行命名。如A1、B2等。
8、支持多种Excel函数表达式。在数据计算中,可对单元格内容执行公式计算,如设置单元格类型为表达式后,可输入“sum(A2+B3)”进行求和计算。
9、支持对单元格的基本属性进行配置。包括单元格中数据的字体、大小、颜色、边框、背景色、排列方式等。
10、支持对数据报表的导出功能。可以导出为word、pdf或excel。同时,可在配置页边距、页面大小等信息后,进行在线打印输出。
11、自定义一种单元格扩展方式。基于此扩展方式,可以解决交叉报表、跨行组运算的复杂报表功能。
12、支持数据报表远端保存功能。允许使用人员接入Amazon S3等共享存储服务。方便断电恢复报表数据。
在一个具体的实施例中,如图4所示,原始数据库中有某学校学生的各科成绩。业务人员在报表设计界面绘制如图5所示的抽象表格画布,以得到所需的报表扩展规则文件。其中,维度信息包含班级、姓名和学科,以及指标信息分数,各单元格的含义如表1所示:
表1
后台系统从获取报表扩展规则文件到生成目标报表的具体过程如下:
1.解析输入JSON数据:将传入的报表样式信息进行解析为ReportDefinition对象。
2.初始化表格矩阵:将解析的数据通过计算单元格继承关系,构建表格矩阵进行单元格扩展。
3.根据聚合方式扩展单元格:根据单元格中传入的扩展方式和聚合方式,对单元格字段数据在内存中进行计算,并根据计算后的返回值记录数对单元格进行重构。
4.扩展子格,更新继承关系:由于第3步对单元格进行重构,因此,单元格下的子格也需要根据扩展方式和查询记录数进行扩展,这样才能结果值与设计的样式一一匹配。
5.计算最终的结果矩阵:通过第4步计算的结果,汇集为结果矩阵,并将结果矩阵渲染为表格中行列上的单元格样式及显示数据,得到图6所示的学生成绩表,即目标报表。
由上可知,本发明相对于现有技术具有以下的优点和效果:
1.所见即所得,降低业务人员学习成本。
该报表引擎的设计,符合国人使用中国式报表的习惯。对于业务人员而言,只需要在设计界面上导入数据表及维度指标列信息,就可以得到复杂的符合业务的中国式报表。
2.降低系统耦合,插件式扩展报表功能
系统中扩展该报表引擎,无需修改原有业务代码逻辑,只需要简单配置,即可获得报表功能。
本发明实施例在用户提供的报表扩展规则文件中提取生成报表的格式要素,自动生成用户所需格式的报表模板,然后将用户选取的目标数据填充到报表模板中,按照模板规则对数据进行处理,得到最终展示给用户的报表。本发明能够根据用户提供的各类报表格式,自动对应生成报表,相比仅能根据固定报表模板生成报表的现有技术,具有更强的灵活性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
图7示出了本发明实施例提供的报表生成装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图7所示,报表生成装置7包括:
模板生成模块71,用于根据报表扩展规则文件生成报表模板;其中,报表扩展规则文件包括单元格定义和单元格关联关系,单元格定义包括维度字段和指标字段,维度字段用于指示单元格的名称,指标字段用于指示单元格的数值类型,单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;
拷贝模块72,用于根据单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至报表模板,得到初始报表;
计算模块73,用于根据单元格关联关系,计算初始报表中各单元格的值,得到目标报表;其中,子格为引用其他单元格的单元格。
在一种可能的实现方式中,拷贝模块72包括:
查找单元,用于针对任一维度字段,在原始数据库中查找与属于该维度字段的指标字段对应的记录,得到各维度字段的记录查找结果和记录查找数量;
扩展单元,用于基于记录查找数量,对报表模板进行扩展,以使扩展后的报表模板中,各指标字段对应的单元格数量与记录查找数量相同;
填充单元,用于将各个记录查找结果分别填充至该指标字段对应的单元格。
在一种可能的实现方式中,扩展单元具体用于:
若该维度字段所在位置为列标题,则向下对报表模板扩展N个单元格;其中,N为记录查找数量;
若该维度字段所在位置为行标题,则向右对报表模板扩展N个单元格。
在一种可能的实现方式中,计算模块73还用于:
在根据单元格关联关系,计算计算前报表中各单元格的值之后,针对每个单元格,基于该单元格的值更新该单元格的子格的值。
在一种可能的实现方式中,模板生成模块71还用于:
在根据报表扩展规则文件生成报表模板之前,获取报表设计web页;
将报表设计web页转化为JSON格式,得到报表扩展规则文件。
在一种可能的实现方式中,模板生成模块71具体用于:
展示报表设计界面;
获取用户在报表设计界面输入的设计指令,得到报表设计web页;其中,报表设计界面包括多种组件模块,每个组件模块对应一个报表元素,设计指令包括拖拽操作和单元格定义输入操作。
在一种可能的实现方式中,计算模块73还用于:
在得到目标报表之后,获取表格样式信息;
按照表格样式信息对目标报表进行渲染展示。
本发明实施例在用户提供的报表扩展规则文件中提取生成报表的格式要素,自动生成用户所需格式的报表模板,然后将用户选取的目标数据填充到报表模板中,按照模板规则对数据进行处理,得到最终展示给用户的报表。本发明能够根据用户提供的各类报表格式,自动对应生成报表,相比仅能根据固定报表模板生成报表的现有技术,具有更强的灵活性。
图8是本发明实施例提供的终端的示意图。如图8所示,该实施例的终端8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述各个报表生成方法实施例中的步骤,例如图1所示的步骤101至步骤103。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块/单元71至73的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端8中的执行过程。例如,所述计算机程序82可以被分割成图7所示的模块/单元71至73。
所述终端8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端8可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是终端8的示例,并不构成对终端8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述终端8的内部存储单元,例如终端8的硬盘或内存。所述存储器81也可以是所述终端8的外部存储设备,例如所述终端8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述终端8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个报表生成方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种报表生成方法,其特征在于,包括:
根据报表扩展规则文件生成报表模板;其中,所述报表扩展规则文件包括单元格定义和单元格关联关系,所述单元格定义包括维度字段和指标字段,所述维度字段用于指示单元格的名称,所述指标字段用于指示单元格的数值类型,所述单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;
根据所述单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至所述报表模板,得到初始报表;
根据所述单元格关联关系,计算所述初始报表中各子格的值,得到目标报表;其中,所述子格为引用其他单元格的单元格。
2.根据权利要求1所述的报表生成方法,其特征在于,所述根据所述单元格定义,在用户提供的原始数据库中查找需要的数据并进行拷贝至所述报表模板,得到计算前报表包括:
针对任一维度字段,在所述原始数据库中查找与属于该维度字段的指标字段对应的记录,得到各维度字段的记录查找结果和记录查找数量;
基于所述记录查找数量,对所述报表模板进行扩展,以使扩展后的报表模板中,各指标字段对应的单元格数量与所述记录查找数量相同;
将各个记录查找结果分别填充至该指标字段对应的单元格。
3.根据权利要求2所述的报表生成方法,其特征在于,所述基于所述记录查找数量,对所述报表模板进行扩展包括:
若该维度字段所在位置为列标题,则向下对所述报表模板扩展N个单元格;其中,N为所述记录查找数量;
若该维度字段所在位置为行标题,则向右对所述报表模板扩展N个单元格。
4.根据权利要求3所述的报表生成方法,其特征在于,在根据所述单元格关联关系,计算所述计算前报表中各单元格的值之后,所述方法还包括:
针对每个单元格,基于该单元格的值更新该单元格的子格的值。
5.根据权利要求1所述的报表生成方法,其特征在于,在所述根据报表扩展规则文件生成报表模板之前,所述方法还包括:
获取报表设计web页;
将所述报表设计web页转化为JSON格式,得到所述报表扩展规则文件。
6.根据权利要求5所述的报表生成方法,其特征在于,所述获取报表设计web页包括:
展示报表设计界面;
获取用户在所述报表设计界面输入的设计指令,得到报表设计web页;其中,所述报表设计界面包括多种组件模块,每个组件模块对应一个报表元素,所述设计指令包括拖拽操作和单元格定义输入操作。
7.根据权利要求1至6任一项所述的报表生成方法,其特征在于,在得到目标报表之后,所述方法还包括:
获取表格样式信息;
按照表格样式信息对所述目标报表进行渲染展示。
8.一种报表生成装置,其特征在于,包括:
模板生成模块,用于根据报表扩展规则文件生成报表模板;其中,所述报表扩展规则文件包括单元格定义和单元格关联关系,所述单元格定义包括维度字段和指标字段,所述维度字段用于指示单元格的名称,所述指标字段用于指示单元格的数值类型,所述单元格关联关系用于指示每个单元格与其他单元格之间的逻辑关系;
拷贝模块,用于根据所述单元格定义,在用户提供的原始数据库中查找需要的数据并拷贝至所述报表模板,得到初始报表;
计算模块,用于根据所述单元格关联关系,计算所述初始报表中各单元格的值,得到目标报表;其中,所述子格为引用其他单元格的单元格。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上的权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171452.5A CN116468010A (zh) | 2023-02-27 | 2023-02-27 | 报表生成方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310171452.5A CN116468010A (zh) | 2023-02-27 | 2023-02-27 | 报表生成方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116468010A true CN116468010A (zh) | 2023-07-21 |
Family
ID=87172414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310171452.5A Pending CN116468010A (zh) | 2023-02-27 | 2023-02-27 | 报表生成方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116468010A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117216146A (zh) * | 2023-10-10 | 2023-12-12 | 广州红海云计算股份有限公司 | 一种基于人工智能的数据分析及展现系统 |
CN117252180A (zh) * | 2023-11-16 | 2023-12-19 | 太平金融科技服务(上海)有限公司 | 一种报表生成方法、装置、电子设备及存储介质 |
CN117291156A (zh) * | 2023-10-12 | 2023-12-26 | 西安新视窗科技有限公司 | 一种基于动态解释的工程表格资料生成系统及方法 |
CN117454862A (zh) * | 2023-12-25 | 2024-01-26 | 青岛民航凯亚系统集成有限公司 | 一种基于引擎模式的报表生成方法及自助bi系统 |
-
2023
- 2023-02-27 CN CN202310171452.5A patent/CN116468010A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117216146A (zh) * | 2023-10-10 | 2023-12-12 | 广州红海云计算股份有限公司 | 一种基于人工智能的数据分析及展现系统 |
CN117216146B (zh) * | 2023-10-10 | 2024-05-14 | 广州红海云计算股份有限公司 | 一种基于人工智能的数据分析及展现系统 |
CN117291156A (zh) * | 2023-10-12 | 2023-12-26 | 西安新视窗科技有限公司 | 一种基于动态解释的工程表格资料生成系统及方法 |
CN117291156B (zh) * | 2023-10-12 | 2024-07-12 | 西安新视窗科技有限公司 | 一种基于动态解释的工程表格资料生成系统及方法 |
CN117252180A (zh) * | 2023-11-16 | 2023-12-19 | 太平金融科技服务(上海)有限公司 | 一种报表生成方法、装置、电子设备及存储介质 |
CN117252180B (zh) * | 2023-11-16 | 2024-02-23 | 太平金融科技服务(上海)有限公司 | 一种报表生成方法、装置、电子设备及存储介质 |
CN117454862A (zh) * | 2023-12-25 | 2024-01-26 | 青岛民航凯亚系统集成有限公司 | 一种基于引擎模式的报表生成方法及自助bi系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113272801B (zh) | 根据选择的数据源的对象模型生成数据可视化 | |
CN108038222B (zh) | 用于信息系统建模和数据访问的实体-属性框架的系统 | |
CN116468010A (zh) | 报表生成方法、装置、终端及存储介质 | |
US7370271B2 (en) | Methods and apparatus for generating a spreadsheet report template | |
WO2021073077A1 (zh) | 用于自动生成电子表格的方法、装置、设备及存储介质 | |
US11893341B2 (en) | Domain-specific language interpreter and interactive visual interface for rapid screening | |
KR102330547B1 (ko) | 보고 생성 방법 | |
CN110543303B (zh) | 一种可视化业务平台 | |
CN107807913A (zh) | 一种基于web的电子表单设计系统及方法 | |
US20080215621A1 (en) | Metamodel-based automatic report generation | |
CN104239073B (zh) | 一种数据维护系统快速原型开发系统及方法 | |
CN116097241A (zh) | 使用语义角色的数据准备 | |
CN114461200A (zh) | 一种基于云SaaS平台的低代码开发应用及方法 | |
CN103593414A (zh) | 一种浏览器中网页的展现方法和装置 | |
CN114090653A (zh) | 一种资源数据统计方法、装置、元平台设备及存储介质 | |
US10776351B2 (en) | Automatic core data service view generator | |
CN115358204A (zh) | 一种报表生成方法、装置、电子设备及存储介质 | |
CN101408909A (zh) | 一种产品信息模型描述方法 | |
CN107562825A (zh) | 一种生成数据展示界面的系统及方法 | |
CN114207598A (zh) | 电子表单表转换 | |
CN114371845A (zh) | 表单生成方法及装置 | |
CN110119416A (zh) | 一种服务数据分析系统及方法 | |
CN102866985B (zh) | 用于联机分析处理系统的数据格式化装置和方法 | |
CN112527918A (zh) | 一种数据处理的方法和装置 | |
CN102043769A (zh) | 单据编辑方法和装置 |
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 |