一种报表的生成方法及设备与流程

文档序号:17696892发布日期:2019-05-17 21:38阅读:234来源:国知局
一种报表的生成方法及设备与流程

本发明的实施例涉及数据处理领域,尤其涉及一种报表的生成方法及设备。



背景技术:

目前,为了满足用户多样化的需求,及有可能出现较为复杂的报表间的数据关系。另外,报表的生成过程必然包含着从数据库中获取数据,以及对单元格数据计算关系进行定制化的配置。当前的电子报表在生成时,需要开发人员在了解用户需求后,使用专业的报表生成工具,通过配置和编码,完成报表的生成。如finereport、润乾报表等报表工具,这些报表工具都使用了类excel操作界面的报表设计工具,在图形化的界面中,以所见即所得的方式,实现对报表样式及数据的配置。

因此,在已有方案中,需要在上述报表设计工具中完成数据源的配置、sql查询语句的编码,以及按照报表设计器自定义的配置方法、关系定义来完成计算关系的编制,配置较为繁琐,报表工具的学习成本依然较高,仍然需要由专业开发人员进行操作完成报表需求的开发。

另外,从用户的报表需求产生,到用户实际正常查询、生成报表,需要实践以下流程:用户提出报表需求-开发-测试-上线使用。而且在其后使用过程中,依然包含:使用中发现问题-用户反馈-修改-测试-更新后继续使用的复杂过程。以上过程中往往包含用户和开发人员之间大量的沟通、理解,无法及时的满足电子报表定制化、多样化的现实需求。



技术实现要素:

本发明的实施例提供一种报表的生成方法及设备,能够简化报表的制作流程,降低报表的制作成本并满足报表定制化、多样化的需求。

第一方面,提供一种报表的生成方法,服务器接收终端发送的操作表,其中所述操作表包括:样式表、中间表以及需求表,其中所述操作表均为excel格式;所述服务器解析所述中间表,生成所述需求表的单元格的计算公式,并根据源数据表确定所述需求表中对源数据表的内容的筛选条件;所述服务器根据所述计算公式以及所述筛选条件得到由所述源数据表生成所述需求表的计算关系;所述服务器解析所述样式表,生成所述需求表的样式配置信息,其中所述样式配置信息包括所述需求表的格式和显示样式,所述样式表用于确定所述需求表的静态样式;所述服务器根据所述需求表的计算关系以及所述需求表的样式配置信息生成报表的模板。

综上,现有技术中用户之所以无法自由定制自身所需报表,不仅由于数据库查询语言需要有一定时间的学习过程,常常还因为表格中数据筛选、表示数据间关系的计算公式较为复杂,从数据源表中无法一次通过excel提供功能生成最终需求表中所有公式。因此,本发明的实施例中引入excel格式的中间表以及样式表的概念。用户可以自主的将复杂的筛选、计算过程分拆为多个较容易实现的计算步骤,在中间表中进行计算,得到中间结果,简化了最终需求表的配置过程;此外用户可以自主的通过编辑样式表设置报表的静态样式;最终可以根据由中间表解析获得的需求表的计算关系以及由中间表解析得到的需求表的样式配置信息生成报表的模板,用户在查询报表时,则可以直接根据目标报表的模板在数据源表中查询数据内容进行填充,生成目标报表。从而能够简化报表的制作流程,降低报表的制作成本并满足报表定制化、多样化的需求。

第二方面,提供一种服务器,包括:数据导出模块,用于接收终端发送的操作表,其中所述操作表包括:样式表、中间表以及需求表,其中所述操作表均为excel格式;数据解析模块,用于解析所述数据导出模块接收的所述中间表,生成所述需求表的单元格的计算公式,并根据源数据表确定所述需求表中对源数据表的内容的筛选条件;数据链接模块,用于根据所述数据解析模块获得的所述计算公式以及所述筛选条件得到由所述源数据表生成所述需求表的计算关系;样式解析模块,用于解析所述数据导出模块接收的样式表,生成所述需求表的样式配置信息,其中所述样式配置信息包括所述需求表的格式和显示样式,所述样式表用于确定所述需求表的静态样式;模板生成模块,用于根据所述数据链接模块生成的所述需求表的计算关系以及所述样式解析模块生成的所述需求表的样式配置信息生成报表的模板。

第三方面,提供一种终端,包括:接收模块,用于从服务器导出操作表模板以及源数据表;编辑模块,用于根据用户输入的编辑指令对所述操作表模板进行编辑后生成操作表,其中所述操作表模板中包括样式表模板、中间表模板以及需求表模板,所述用户根据终端展示的源数据表向所述终端输入所述编辑指令,其中所述编辑指令控制填充所述样式表模板生成样式表、控制填充所述中间表模板生成中间表以及控制填充所述需求表模板的生成需求表中的筛选条件;发送模块,将所述操作表发送至所述服务器,其中所述操作表包括:样式表、中间表以及需求表,其中所述样式表用于确定所述需求表的静态样式,所述中间表用于确定所述需求表的单元格的计算公式。

第四方面,提供一种服务器,包括通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述服务器运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述服务器执行上述报表的生成方法。

第五方面,提供一种终端,包括通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述终端运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述终端执行如上述报表的生成方法。

第六方面,提供一种计算机存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如上述报表的生成方法。

第七方面,提供一种计算机程序产品,所述计算机程序产品包括指令代码,所述指令代码用于执行如上述报表的生成方法。

可以理解地,上述提供的任一种服务器、终端、计算机存储介质或计算机程序产品均用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例提供的一种网络系统的示意图;

图2为本发明的实施例提供的一种报表的生成方法的流程示意图;

图3为本发明的实施例提供的一种服务器的结构示意图;

图4为本发明的另一实施例提供的一种服务器的结构示意图;

图5为本发明的实施例提供的一种终端的结构示意图;

图6为本发明的另一实施例提供的一种终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的实施例应用于网络系统,该网络系统包括如图1所示的终端11和服务器12,其中终端可以为手机或者其他用户设备,例如pad、掌上电脑、pc、车载终端等等;此外,该网络系统是用于b/s架构(browser/server,浏览器/服务器架构),或者c/s架构;其中在b/s架构场景下终端11上安装有浏览器;在c/s架构(client/server,客户端/服务器架构)下终端11可以为客户端。

具体的参照图2所示的流程,本发明的实施例包括如下步骤:

101、服务器接收终端发送的操作表,其中操作表包括:样式表、中间表以及需求表,其中操作表均为excel格式。

其中服务器支持数据导出功能,在步骤101之前,服务器向终端导出操作表模板以及源数据表,终端根据用户输入的编辑指令对操作表模板进行编辑后生成操作表,其中操作表模板中包括样式表模板、中间表模板以及需求表模板,用户根据终端展示的源数据表向终端输入编辑指令。示例性的,编辑指令控制填充样式表模板生成样式表、控制填充中间表模板生成中间表以及控制填充需求表模板的生成需求表中的筛选条件。其中样式表用于确定需求表的静态样式,中间表用于确定需求表的单元格的计算公式。

具体的,操作表可以包含多个工作表,按照类型分别为上述的样式表、中间表、需求表;当然数据源表也可以称作一种操作表,在excel工作簿文件中,依据工作表的名称进行区分。以下对各类表的说明如下:

数据源表包含了用户所选,数据库中的表格各列表头及数据信息;其中,数据源类型的工作表(数据源表),依据用户所选的多个数据库表,可以分为多个工作表导出显示。并且,数据源表各列中,只需导出部分数据作为参考计算使用即可,可不必提取、显示所有的数据行。

样式表规定了需求表的静态样式,包含了表头、列头分组,多行合并,多列合并,行列数是否固定,单元格颜色、大小等配置信息。

中间表,是对需求表中复杂计算过程的中间计算结果的编辑、展现。

需求表即为最终用户所需定制的报表。需求表包含了报表静态表头、行头内容及所有单元格数据计算公式。需求表中的单元格行列样式需要和样式表的配置一致。另外需求表中还包含筛选条件(或查询条件)的配置,在需求表(excel表格式)中设定固定区域单元格,作为查询条件。查询条件可由excel表下拉列表及输入控件实现;中间表和需求表中的公式都可以引用这些单元格;这些作为查询条件的单元格,对应用户在终端进行条件查询相关操作时,填入的各个查询条件。

为了实现以上需求,在服务器需要配置具备对操作表的解析功能,具体如下:

102、服务器解析中间表,生成需求表的单元格的计算公式,并根据数据源表确定需求表中对数据源表的内容的筛选条件。

为实现对中间表的解析,中间表要求必须为简单表格,即仅包含静态内容,其余表格中数据均为引用。中间表可以有多个,中间表中公式内容可以引用数据源表和其他中间表,不得循环引用。

其中步骤102的主要功能是将中间表、需求表中引用的数据源表的内容、对数据源表的内容进行处理计算的计算公式(例如excel公式),转化为对应的筛选条件、以及数据汇总计算相关的关联关系。一方面,对中间表中的筛选条件进行解析,生成数据范围选取算法的关系表述;另一方面,对excel公式进行解析,得到对应的数据计算算法关系。解析发生错误时,数据解析模块提供详细的错误提示,引导用户修改导入的操作表,例如中间表或需求表。

103、服务器根据计算公式以及筛选条件得到由数据源表生成需求表的计算关系。

在步骤103中主要完成的功能为,以步骤102输出的结果结果为基础,将对数据源表计算生成中间表的数据,以及对中间表的数据计算生成需求表的数据的过程,进行链接,确定从数据源表的内容,到计算生成需求表中各个单元格的计算关系。

此外,上述数据链接产生的结果,是从数据源表计算生成需求表格各个单元格结果的相关计算关系。由于该计算关系借助了中间表的计算协助生成,结果算法不可避免的会产生不必要的重复,以及算法曲折、复杂的计算过程。因此在步骤103中,还包括对筛选条件以及计算公式进行优化。例如:分析数据源表与结果的计算关系的相关度,对表间公式链接得到的计算关系进行简化,生成最终的查询、计算编码,从而提高需求表生成的效率。

104、服务器解析样式表,生成需求表的样式配置信息,其中样式配置信息包括需求表的格式和显示样式,样式表用于确定需求表的静态样式。

由于样式表规定了需求表的静态样式,因此该步骤中主要是对导入样式表中的单元格样式标注进行解析。确定所需求的报表在终端中显示的大小、颜色、文字、样式信息。另外,还可以分析样式表和需求表,查看两者的表格格式是否对应,否则在导入操作表时进行详细的错误提示。

105、服务器根据需求表的计算关系以及需求表的样式配置信息生成报表的模板。

最终,本申请的实施例还提供了报表的查询和展现功能,具体包括如下步骤:

106、服务器接收终端设备发送的报表查询请求,其中报表查询请求包含目标报表的标识。

107、服务器根据目标报表的标识确定目标报表的模板,并在数据库的源数据表中确定查询的数据内容。

108、服务器将目标报表的模板与数据内容组合成目标报表,并反馈至终端。

其中基于上述的网络系统,报表呈现不依赖于特定一种客户端,无论是在浏览器中还是在定制化的计算机客户端中,报表呈现过程可以依据不同客户端调用对应接口,将结果表格最终呈现给用,并提供导出、下载、打印等功能。

综上,现有技术中用户之所以无法自由定制自身所需报表,不仅由于数据库查询语言需要有一定时间的学习过程,常常还因为表格中数据筛选、表示数据间关系的计算公式较为复杂,从数据源表中无法一次通过excel提供功能生成最终需求表中所有公式。因此,本发明的实施例中引入excel格式的中间表以及样式表的概念。用户可以自主的将复杂的筛选、计算过程分拆为多个较容易实现的计算步骤,在中间表中进行计算,得到中间结果,简化了最终需求表的配置过程;此外用户可以自主的通过编辑样式表设置报表的静态样式;最终可以根据由中间表解析获得的需求表的计算关系以及由中间表解析得到的需求表的样式配置信息生成报表的模板,用户在查询报表时,则可以直接根据目标报表的模板在数据源表中查询数据内容进行填充,生成目标报表。从而能够简化报表的制作流程,降低报表的制作成本并满足报表定制化、多样化的需求。

参照图3所示,一种服务器,包括:

数据导出模块31,用于接收终端发送的操作表,其中所述操作表包括:样式表、中间表以及需求表,其中所述操作表均为excel格式;

数据解析模块32,用于解析所述数据导出模块31接收的所述中间表,生成所述需求表的单元格的计算公式,并根据源数据表确定所述需求表中对源数据表的内容的筛选条件;

数据链接模块33,用于根据所述数据解析模块32获得的所述计算公式以及所述筛选条件得到由所述源数据表生成所述需求表的计算关系;

样式解析模块34,用于解析所述数据导出模块31接收的样式表,生成所述需求表的样式配置信息,其中所述样式配置信息包括所述需求表的格式和显示样式,所述样式表用于确定所述需求表的静态样式;

模板生成模块35,用于根据所述数据链接模块33生成的所述需求表的计算关系以及所述样式解析模块34生成的所述需求表的样式配置信息生成报表的模板。

在一种示例性的方案中,报表展示模块36用于接收终端发送的报表查询请求,其中所述报表查询请求包含目标报表的标识;根据所述目标报表的标识确定目标报表的模板,并在数据库的源数据表中确定查询的数据内容;将所述目标报表的模板与所述数据内容组合成目标报表,并反馈至所述终端。

在一种示例性的方案中,所述数据导出模块31还用于向终端导出操作表模板以及源数据表,以便所述终端根据用户输入的编辑指令对所述操作表模板进行编辑后生成所述操作表,其中所述操作表模板中包括样式表模板、中间表模板以及需求表模板,所述用户根据终端展示的源数据表向所述终端输入所述编辑指令;其中所述编辑指令控制填充所述样式表模板生成样式表、控制填充所述中间表模板生成中间表以及控制填充所述需求表模板的生成需求表中的筛选条件。

在一种示例性的方案中,还包括:查询优化模块37,用于对所述数据解析模块32获得的所述筛选条件以及所述计算公式进行优化。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。

在采用集成的模块的情况下,服务器包括:存储单元、处理单元以及接口单元。处理单元用于对服务器的动作进行控制管理,例如,处理单元用于支持服务器执行图2中的过程102-105、107、108;接口单元用于服务器执行图2中的过程101、106、108;存储单元,用于存储服务器的程序代码和数据。

其中,以处理单元为处理器,存储单元为存储器,接口单元为通信接口为例。其中,服务器参照图4中所示,包括通信接口401、处理器402、存储器403和总线404,通信接口401、处理器402通过总线404与存储器403相连。

处理器402可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

存储器403可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器403用于存储执行本申请方案的应用程序代码,并由处理器402来控制执行,例如支持服务器执行图2中的过程102-105、107、108。通讯接口401用于支持服务器执行图2中的过程101、106、108。处理器402用于执行存储器403中存储的应用程序代码,从而实现本申请实施例中所述的方法。

参照图5所示,本发明的实施例提供一种终端,其特征在于,包括:

接收模块51,用于从服务器导出操作表模板以及源数据表;

编辑模块52,用于根据用户输入的编辑指令对所述接收模块51接收的操作表模板进行编辑后生成操作表,其中所述操作表模板中包括样式表模板、中间表模板以及需求表模板,所述用户根据终端展示的源数据表向所述终端输入所述编辑指令,其中所述编辑指令控制填充所述样式表模板生成样式表、控制填充所述中间表模板生成中间表以及控制填充所述需求表模板的生成需求表中的筛选条件;

发送模块53,将所述编辑模块52生成的所述操作表发送至所述服务器,其中所述操作表包括:样式表、中间表以及需求表,其中所述样式表用于确定所述需求表的静态样式,所述中间表用于确定所述需求表的单元格的计算公式。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。

在采用集成的模块的情况下,终端包括:存储单元、处理单元以及接口单元。处理单元用于对终端的动作进行控制管理,例如,处理单元用于支持终端执行图2中的过程107;接口单元用于支持终端与其他设备的信息交互,例如执行步骤101、106、108。存储单元,用于存储终端的程序代码和数据。

其中,以处理单元为处理器,存储单元为存储器,接口单元为通信接口为例。其中,终端参照图6中所示,包括通信接口601、处理器602、存储器603和总线604,通信接口601、处理器602通过总线604与存储器603相连。

处理器602可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

存储器603可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器603用于存储执行本申请方案的应用程序代码,并由处理器602来控制执行,例如执行图2中的步骤107。通讯接口601用于与其他设备进行信息交互,例如支持终端执行步骤101、106、108。处理器602用于执行存储器603中存储的应用程序代码,从而实现本申请实施例中所述的方法。

此外,还提供一种计算存储媒体(或介质),包括在被执行时进行上述实施例中的网络侧设备或终端执行的方法操作的指令。另外,还提供一种计算机程序产品,包括上述计算存储媒体(或介质)。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1