一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于自定义报表的报表生成方法、存储介质和组件与流程

2022-02-20 05:05:29 来源:中国专利 TAG:


1.本发明涉及报表领域,尤其涉及基于自定义报表的报表生成方法、存储介质和组件。


背景技术:

2.目前,报表功能是目前公司业务系统中必不可少的功能;同时,由于各个企业的需求不同,很大程度上对于自定义报表的需求越来越多,比如客户可根据自己的使用情况调整报表的样式和对应的数据展示项,但是,目前对于支持自定义报表功能的业务系统,其很多情况下需要程序员或工程师介入后才能完成,提高了系统使用门槛,同时也给客户带来不好的体验,不能实现真正意义上的自定义报表。


技术实现要素:

3.为了克服现有技术的不足,本发明的目的之一在于提供基于自定义报表的报表生成方法,其能够解决现有的报表导出功能操作复杂、体验不好等问题。
4.本发明的目的之二在于提供一种存储介质,其能够解决现有的报表导出功能操作复杂、体验不好等问题。
5.本发明的目的之三在于提供基于自定义报表的报表引擎组件,其能够解决现有的报表导出功能操作复杂、体验不好等问题。
6.本发明的目的之一采用如下技术方案实现:
7.基于自定义报表的报表生成方法,所述报表生成方法包括:
8.命令获取步骤:获取报表预览指令并根据所述报表预览指令得出一个或多个待处理模板文件;
9.解析步骤:根据系统中存储的对应业务系统的取数表达式定义规则对每个待处理模板文件进行解析以得出每个待处理模板文件中的所有取数表达式;
10.数据获取步骤:根据每个待处理模板文件绑定的取数插件从对应业务系统的数据源中获取每个取数表达式的结果数据;每个业务系统均对应一个取数插件;每个业务系统的待处理模板文件均绑定对应业务系统的取数插件;
11.报表生成步骤:根据每个待处理模板文件创建对应报表并将对应待处理模板文件的每个取数表达式的结果数据填充到对应待处理模板文件的报表中后生成报表文件;
12.预览步骤:将报表文件通过web端显示给用户。
13.进一步地,还包括:模板制作步骤:获取用户自定义的模板文件并根据用户自定义的模板文件与对应业务系统的取数插件进行绑定后得出模板文件与取数插件的绑定关系;
14.所述数据获取步骤还包括:根据系统中存储的模板文件与取数插件的绑定关系查询得出每个待处理模板文件绑定的取数插件,然后根据每个待处理模板文件绑定的取数插件从对应业务系统的数据源中获取每个取数表达式的结果数据。
15.进一步地,所述模板文件为excel文件。
16.进一步地,还包括报表导出步骤:获取报表导出命令并判断系统中是否存在对应报表;若是,则将对应报表通过excel文件导出;若否,则对报表导出命令进行解析得出一个或多个模板文件,然后执行解析步骤、数据获取步骤以及报表生成步骤后,将生成的报表通过excel文件导出。
17.进一步地,数据获取步骤中的对应业务系统的数据源包括业务系统的本地数据库和远程网页数据。
18.进一步地,报表预览步骤具体包括:通过调用excel软件的excel to html工具将报表推送到web端。
19.本发明的目的之二采用如下技术方案实现:
20.一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序为报表生成程序,所述报表生成程序被处理器执行时如本发明的目的之一采用的基于自定义报表的报表生成方法的步骤。
21.本发明的目的之三采用如下技术方案实现:
22.基于自定义报表的报表引擎组件,所述报表引擎组件包括报表服务模块、取数插件和报表引擎模块;所述报表服务模块,用于获取用户自定义的模板文件并将所述模板文件与对应的取数插件进行绑定后存储于系统中;每个业务系统均具有一个取数插件,每个业务系统包括若干个模板文件;
23.所述报表服务模块,还用于接收用户发送的报表操作指令并将所述报表操作指令发送给报表引擎模块,以及获取所述报表引擎模块返回的报表文件并根据所述报表操作指令执行对应的操作;
24.所述报表引擎模块,用于对所述报表操作指令进行解析得出一个或多个待处理模板文件并对每个待处理模板文件进行解析得出所有的取数表达式,然后通过调用每个待处理模板文件绑定的取数插件从对应业务系统的数据源获取每个取数表达式的结果数据,然后根据每个待处理模板文件的每个取数表达式的结果数据生成对应的报表文件。
25.进一步地,所述模板文件为excel文件,包括若干个取数表达式;每个取数表达式分别位于对应模板文件中对应的excel表格中;所述报表引擎模块,还用于调用数据填充接口将每个取数表达式的结果数据填充于对应待处理模板文件中对应取数表达式所在的excel表格中。
26.进一步地,所述报表操作指令为报表预览指令时,所述报表服务模块,用于调用excel软件的excel to html工具将生成的报表推送到web端;
27.当所述报表操作指令为报表导出指令时,所述报表服务模块,用于将报表文件以excel文件导出。
28.相比现有技术,本发明的有益效果在于:
29.本发明通过预先对业务系统的报表查询所涉及到的报表取数表达式的格式定义并存储于系统中,同时设定每个业务系统对应的取数插件;这样,当用户上传模板文件时将模板文本预先与对应的取数插件进行,以便在报表预览或报表导出时能够根据对应的取数插件实现对报表中的取数表达式的结果数据进行查询,快速生成对应报表,解决了现有技术中报表导出功能操作复杂、操作门槛高等问题,实现了真正意义上的报表自定义导出,满足客户的个性化需求。
附图说明
30.图1为本发明提供的基于自定义报表的报表引擎组件中各个模块的连接示意图;
31.图2为本发明提供的基于自定义报表的报表生成方法流程图。
具体实施方式
32.下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
33.实施例一
34.基于现有技术中存在的问题,本发明提供一种优选的实施例,基于自定义报表的报表生成系统,其能够提供完整的自定义报表开发框架和解决方案,通过excel制作报表模板,实现了报表的所见即所得。由于excel对于客户来说,其学习成本很低,客户很容易操作,极大方便了客户的使用,提高客户体验。
35.具体地,本实施例通过对ecxel单元格指定相应的取数表达式,并设置对应的插件式开发的取数插件,这样即可通过取数插件获取取数表达式对应的数据结果并通过数据填充、报表预览等工具将最终的数据结果展示给客户。
36.同时,本实施例还可针对不同的业务系统设置对应的取数插件,各个业务系统之间不会相互影响,可独立运行,使得系统具有可扩展性。在实际的应用过程中,将该系统以插件式组件的形式开发并加载于excel软件中,这样,用户即可直接在excel软件中输入相应的取数表达式,并调用相应的取数插件即可生成对应报表,实现报表的预览以及导出功能,本发明操作简单,无需工程师或程序员的介入,只要熟悉excel软件操作的办公人员均可轻松操作。
37.具体地,本发明提供一种基于自定义报表的报表引擎组件,如图1所述,包括三部分:报表服务模块、报表引擎模块和取数插件。
38.其中,报表服务,用于与excel软件进行交互,以获取用户上传的模板文件,同时获取报表引擎模块生成的报表并将生成的报表通过excel进行预览或导出等。在实际的使用过程中,其相当于一个可运行的java服务进程,依赖于报表引擎模块。
39.报表引擎模块,是整个组件的核心部件,用于取数插件的加载、调用、模板文件与取数插件的绑定、取数表达式的解析以及报表生成时数据填充、报表html预览、报表导出等。
40.取数插件,是报表引擎模块与业务系统的数据源之间部件,用于在报表引擎模块的调用下访问对应业务系统的数据源并将查询到的结果数据返回给报表引擎模块。另外,业务系统的数据源可以为本地的数据库,也可以为远程的网页数据等。
41.另外,不同的业务系统均具有一个取数插件,不同业务系统的取数插件独立运行,互不影响。
42.更为具体地,由于业务系统的不同,本实施例还可根据不同的业务系统制定对应的取数表达式的定义规则,该定义规则是由工程师预先根据客户的需求进行定义的,其能够满足客户的个性化需求。定义规则定义好后将其存储到系统中,这样,用户即可在excel软件中根据自身需要导出的报表数据在excel的表格中输入对应的取数表达式,该取数表
达式的格式是与业务系统的取数表达式的定义规则相匹配的。在实际的应用过程中,可通过开发对应的辅助提示组件来实现对用户输入取数表达式时对其进行辅助提示。比如用户在输入取数表达式时,可通过给出用户相应的辅助提示框向用户提示取数表达式的正确格式,以避免用户输入错误。
43.更为具体地,本实施例给出了应用于电力领域内的电力系统行业的报表的取数表达式的定义规则,具体如下:
44.对于取数表达式的写法上规定:取数表达式需要使用{{}}花括号包裹起来;如果数据需要是数字型,需要在取数表达式中添加{{n:xxxxx}},其中,n:表示报表在数据填充时会进行数字类型格式化。
45.如表1所示,对于取数表达式中各个字母的定义如下:
46.47.[0048][0049]
表1
[0050]
具体地,本实施例的取数表达式包括两部分:固定部分和非固定部分。其中,固定部分,是指取数表达式中必须存在的数据,包括两项数据,分别为:
[0051]
{{reportdate}}报表日期;
[0052]
{{username}}填报人。
[0053]
非固定部分是指报表所要查询的具体数据,其也可称为周期表达式,其格式具体如下:{{a1b1c1d1001-50050318e00:05f0}}:
[0054]
依据表1中的定义内容可知:
[0055]
a1:表示查询的测点类的业务。
[0056]
b1:查询周期历史的数据。
[0057]
c1:采集的数据值为ai原始值。其中,c与b配合使用,并且若b为b1时,则c的值可选择c1、c6。
[0058]
d1001-50050318:ioserverid为1001的测点id为50050318。
[0059]
e00:05:e表示具体的分钟数,也即查询05分时刻的值。其也需要与b配合使用。若e后面的值不填写时,默认数据为当前报表日期输入的时刻。
[0060]
f0:表示时间范围,其可填写也可不填写。其默认值为与输入的报表日期为同一周期。
[0061]
也即,该取数表达式所查询的数据为:查询测点id为50050318并且所在ioserverid为1001,时间为00:05分的历史数据。另外,在实际的操作过程中,可根据报表日
期来确定查询的是哪一天的00.05分的隶历史数据。用户输入的报表日期为2021-06-23,则此时查询的数据就是2021-06-23 00:05时刻的值。在实际的应用过程中,可通过向用户提供相应的交互界面,用户可在对应的报表日期栏目中选择对应的报表日期。
[0062]
再比如时刻表达式:{{a1b2c1d1001-50050318e00:15f0}}:
[0063]
该取数表达式的具体含义为:查询测点id为50050318并且所在ioserverid为1001,时间为00:15分的数据。其中,具体哪一天的数据时指输入的报表日期。
[0064]
从表1可知,b2表示时间刻度,c可选择为c1、c2、c3、c4、c5、c6。
[0065]
因此,对于其他的小时表达式、日表达式、月表达式、年表达式等进行同理设置。
[0066]
更为具体地,在实际的应用过程中,本实施例通过在报表引擎模块中定义取数表达式解析抽象类abstractdataformulaparser,即可调用相应的解析器来实现对取数表达式的解析。
[0067]
当通过取数插件获取取数表达式的结果数据后,使用人员可通过在web端查询报表数据。也即,本实施例通过对生成的报表进行封装后通过excel to html工具将报表推送到web端,供用户查看,实现报表的预览。
[0068]
另外,本实施例为满足用户的需求,可在报表预览或导出之前首先制作相应的模板文件并存储到系统中,这样,当用户需要导出对应报表时,只需要得知导出的报表所对应的模板文件即可快速导出,大大方便用户操作。更进一步地,模板文件可由报表制作人员来操作,这样普通的办公人员只需要根据自身的需求选择对应的模板文件即可实现对应报表的导出,极大方便用户的使用。
[0069]
实施例二
[0070]
本发明还提供另外一实施例,基于自定义报表的报表生成方法,如图2所示,包括以下步骤:
[0071]
步骤s1、获取报表预览指令并根据报表预览指令得出一个或多个待处理模板文件。
[0072]
其中,待处理模板文件为excel文件,其包括一个或多个取数表达式。根据用户所导出的数据项的不同,待处理模板文件可能有多个。
[0073]
为了便于用户快速导出报表,本技术中的待处理模板文件可预先上传。后续用户需要导出或预览报表时,只需要知道报表对应的模板文件的名称即可。
[0074]
其中,模板文件可由用户或其他人员根据业务系统的需求设置,并预先上传至系统中,通过系统将每个模板文件与对应业务系统的取数插件绑定,建立模板文件与取数插件的对应关系。
[0075]
另外,每个业务系统均有一个取数插件,每个业务系统可存在若干个模板文件,每个模板文件均绑定对应业务系统的取数插件。
[0076]
更为具体地,模板文件包括一个或多个取数表达式。通过根据自身的需求在一个模板文件中设置一个或多个取数表达式,以实现不同数据的查询。另外,这里的取数表达式的书写格式是满足系统内对于取数表达式的定义规则来书写的,具体可参考前述表1中的描述。当然,不同的业务系统,其取数表达式的定义规则也不同,取数表达式的书写格式不同,具体可根据实际的需求进行设定。
[0077]
步骤s2、根据系统中存储的对应业务系统的取数表达式定义规则对每个待处理模
板文件进行解析以得出每个待处理模板文件中的所有取数表达式。
[0078]
由于模板文件中存储的取数表达式,每个取数表达式的格式均是根据业务系统取数表达式的定义规则进行书写的。因此,再得到的待处理模板文件后根据系统中记载的取数表达式的定义规则对模板文件进行解析,以便得出对应的取数表达式。同时解析时还需要根据业务系统对应的报表定义规则进行解析,避免解析错误。
[0079]
步骤s3、根据每个待处理模板文件绑定的取数插件从对应业务系统的数据源中获取每个取数表达式的结果数据。
[0080]
当待处理模板文件解析得出所有的取数表达式后,通过调用对应的取数插件来实现取数表达式的结果数据的查询。比如,可在业务系统的本地数据库中查询,或业务系统的远程http网页中查询得到。
[0081]
步骤s4、根据每个待处理模板文件创建对应报表并将对应待处理模板文件的每个取数表达式的结果数据填充到对应待处理模板文件的报表中后生成报表文件。
[0082]
当查询得到每个取数表达式的数据后,将每个取数表达式的结果数据填充到待处理模板文件中,生成报表文件。由于本实施例是基于excel文件来实现的报表预览及导出,模板文件为excel文件。因此,在生成报表时,直接调用对应的数据填充接口将每个取数表达式的结果数据填充到对应待处理模板文件中对应取数表达式的excel表格中。
[0083]
步骤s5、将报表文件通过web端显示给用户。
[0084]
具体地,通过调用excel软件的excel to html工具将报表推送到web端。
[0085]
进一步地,步骤s6、当接收到报表导出指令时,判断系统中是否已经存在报表,若是,直接根据报表生成excel文件导出;若否,对报表导出指令进行解析得出一个或多个待处理模板文件,并依次执行步骤s2~s4后生成报表文件,并将报表文件以excel文件导出。
[0086]
实施例三
[0087]
基于实施例二,本发明还提供另一实施例,一种存储介质,存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序为报表生成程序,所述报表生成程序被处理器执行时如以下步骤:
[0088]
命令获取步骤:获取报表预览指令并根据所述报表预览指令得出一个或多个待处理模板文件;
[0089]
解析步骤:根据系统中存储的对应业务系统的取数表达式定义规则对每个待处理模板文件进行解析以得出每个待处理模板文件中的所有取数表达式;
[0090]
数据获取步骤:根据每个待处理模板文件绑定的取数插件从对应业务系统的数据源中获取每个取数表达式的结果数据;每个业务系统均对应一个取数插件;每个业务系统的待处理模板文件均绑定对应业务系统的取数插件;
[0091]
报表生成步骤:根据每个待处理模板文件创建对应报表并将对应待处理模板文件的每个取数表达式的结果数据填充到对应待处理模板文件的报表中后生成报表文件;
[0092]
预览步骤:将报表文件通过web端显示给用户。
[0093]
进一步地,所述报表生成程序被处理器执行时如以下步骤:模板制作步骤:获取用户自定义的模板文件并根据用户自定义的模板文件与对应业务系统的取数插件进行绑定后得出模板文件与取数插件的绑定关系;所述数据获取步骤还包括:根据系统中存储的模板文件与取数插件的绑定关系查询得出每个待处理模板文件绑定的取数插件,然后根据每
个待处理模板文件绑定的取数插件从对应业务系统的数据源中获取每个取数表达式的结果数据。
[0094]
进一步地,所述模板文件为excel文件。
[0095]
进一步地,所述报表生成程序被处理器执行时如以下步骤:报表导出步骤:获取报表导出命令并判断系统中是否存在对应报表;若是,则将对应报表通过excel文件导出;若否,则对报表导出命令进行解析得出一个或多个模板文件,然后执行解析步骤、数据获取步骤以及报表生成步骤后,将生成的报表通过excel文件导出。
[0096]
进一步地,数据获取步骤中的对应业务系统的数据源包括业务系统的本地数据库和远程网页数据。
[0097]
进一步地,报表预览步骤具体包括:通过调用excel软件的excel to html工具将报表推送到web端。
[0098]
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献