一种报告生成方法及系统与流程

文档序号:11407126阅读:349来源:国知局
一种报告生成方法及系统与流程

本申请涉及信息数据处理技术领域,更具体地说,涉及一种报告生成方法及系统。



背景技术:

在银行被纳入全球系统重要性银行名单后,银行需要按月,季和半年频度,定期生成金融监管分析报告,并报送至金融监管部门。

目前,银行生成报告的方式为:首先从银行系统的数据库中下载报表文件并上传至分析系统;该分析系统解析报表文件获取到报表数据,进而根据定制的sql取数方式从报表数据中提取所需数据,将所需数据添加到预先定义的excel单元格中生成各种excel数据集;然后利用定制的excel公式对提取的数据进行计算;后续可提取相关计算结果利用excel的图片生成功能生成各种图片,进而得到excel分析文档;然后将excel文档转换为wps文档得到分析报告。

上述方式中,分析系统对上传的报表数据需要按定制的sql取数逻辑进行数据提取,生成大量的中间数据集即excel数据集,过程较为复杂,导致报告生成花费时间较长。



技术实现要素:

有鉴于此,本申请提供一种报告生成方法及系统,减少报告生成时间。

为了实现上述目的,现提出的方案如下:

本申请提供一种报告生成方法,该方法包括:

获取预设的报告模板,所述报告模板中包括至少一个公式标识;

针对每一个公式标识,获取该公式标识对应的计算公式和公式类型;

解析所述计算公式得到解析结果,所述解析结果包括公式信息,或运算关系和公式信息,所述公式信息至少包括公式变量;

当解析结果包括运算关系和公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,并对所述公式变量对应的数据基于所述运算关系进行计算,得到计算结果;

当解析结果包括所述公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,将所述公式变量对应的数据作为计算结果;

判断所述公式类型是否为图片公式类型;

若否,则将所述报告模板中的公式标识替换为所述计算结果;

若是,则确定所述计算公式对应的图片配置信息;

根据所述计算结果和所述图片配置信息生成图片;

将所述报告模板中的公式标识替换为所述图片。

本发明还提供一种报告生成系统,所述系统包括:

第一获取单元,用于获取预设的报告模板,所述报告模板中包括至少一个公式标识;

第二获取单元,用于针对每个公式标识,获取该公式标识对应的计算公式和公式类型;

解析单元,用于解析所述计算公式得到解析结果,所述解析结果包括:公式信息,或运算关系和公式信息,所述公式信息至少包括公式变量;

计算单元,用于当解析结果包括所述公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,将所述公式变量对应的数据作为计算结果;当解析结果包括运算关系和公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,并对所述公式变量对应的数据基于所述运算关系进行计算,得到计算结果;

判断单元,用于判断所述公式类型是否为图片公式类型;

第一替换单元,用于当公式类型不是图片公式类型时,将报告模板中的公式标识替换为所述计算结果;

确定单元,用于当公式类型是图片公式类型时,确定所述计算公式对应的图片配置信息;

生成单元,用于根据所述计算结果和所述图片配置信息生成图片;

第二替换单元,用于将所述报告模板中的公式标识替换为所述图片。

本申请技术方案中获取包括公式标识的报告模板,根据公式标识获取到计算公式和公式类型,并对计算公式进行解析得到公式信息,进而通过公式信息中的变量信息从预先存储的报表数据中获取到对应的数据这些数据是计算中需要用到的数据;然后对这些数据基于运算关系进行计算得到计算结果或直接将这些数据作为计算结果,并基于公式信息中的类型信息对计算结果进行不同的处理,可见,根据解析计算公式得到的公式信息,能够从预先存储的报表数据中获取计算所需数据,进而基于计算公式对数据进行计算,即计算公式相当于是取数计算逻辑,利用该逻辑实现了计算所需数据从报表数据中的直接获取及计算,由于是从报表数据中直接获取数据并进行计算,所以过程中不会生成大量的中间数据集,如此令报告生成过程较为简单,减少了报告生成时间。

而且在生成图片过程中,根据公式的类型即可确定该计算结果是否用于生成图片,当确定计算结果用于生成图片时,则获取图片配置信息结合该计算结果进行图片的生成,省去了现有技术用户提取相关数据进行图片生成的步骤,令报告的生成过程极大的自动化,提高了生成效率。

附图说明

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

图1为本申请实施例公开的一种报告生成方法基本流程图;

图2为本申请另一实施例公开的一种计算公式解析方法基本流程图;

图3为本申请另一实施例公开的获取计算公式方法的基本流程图;

图4为本申请另实施例公开的一种报告生成系统基本框图。

具体实施方式

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

本申请提供一种报告生成方法,如图1所示,该方法包括:

s100、获取预设的报告模板,所述报告模板中包括至少一个公式标识;

具体的,根据实际需求生成各种报告模板,如月报、季报或半年报的模板,在报告模板的相应位置设有公式标识。其中报告模板基于freemarker工具生成,freemarker工具能够将计算的结果填入到报告模板中。

s110、针对一个公式标识,获取该公式标识对应的计算公式和公式类型;

具体的,在报告生成系统的数据库中存储有所有公式标识对应的计算公式以及该计算公式的公式类型,对报告模板中的所有公式标识依次进行处理,即根据公式标识从数据库中获取该公式标识对应的计算公式。

其中,公式类型表示该计算公式是否是图片类型,若是图片类型,表明要使用该计算公式计算的结果去生成相应的图片。

其中计算公式有:四则运算公式、取数公式、求平均数公式、日均公式、占比公式、增量公式、计算占比或增量等数据的排名公式等。

s120、解析所述计算公式得到解析结果,解析结果包括:公式信息,或运算关系和公式信息,所述公式信息至少包括公式变量;

其中,公式变量表示计算中需要用到的数据。

s130、当解析结果包括运算关系和公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,并对所述公式变量对应的数据基于所述运算关系进行计算,得到计算结果;

当解析结果包括所述公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,将所述公式变量对应的数据作为计算结果;

具体的,在报告生成系统的数据库中预先存储有报表数据,报表数据的获取方式为,报表源系统如银行系统将报表文件通过网络发送到报告生成系统,报告生成系统对报表文件进行装载和解析,进而得到报表数据并存储报表数据。

其中,当解析的公式信息还包括公式常量时,则对所述公式变量对应的数据基于所述运算关系进行计算过程为:

对所述公式变量对应的数据和公式常量基于所述运算关系和公式常量进行计算,得到计算结果。

s140、判断所述公式类型是否为图片类型;若否则执行步骤s150,若是则执行步骤s160;

s150、将所述报告模板中的公式标识替换为所述计算结果;

其中,利用freemarker工具将计算结果填充到公式标识的位置。

s160、确定所述计算公式对应的图片配置信息;

具体的,在系统数据库中存储有图片配置信息表,该图片配置信息中存储有报告所需的所有图片的配置信息,配置信息包括图片的编号、图片类型如折线类型、饼类型、散点类型、图片颜色、图片标题等。其中,图片的编号可以直接采用公式标识。

s170、根据所述计算结果和所述图片配置信息生成图片;

其中,在生成图片时可以采用jfreechart工具,该工具利用计算结果自动生成所需格式的图片,其过程包括:

将所述计算结果和所述图片配置信息按照jfreechart工具的要求导入到数据集中;

对数据集进行处理生成base64编码格式的图片。

s180、将所述报告模板中的公式标识替换为所述图片;

具体的,利用freemarker工具将生成的base64编码格式的图片填充到公式标识的位置。

上述实施例中,根据解析计算公式得到的公式信息能够从预先存储的报表数据中获取计算所需数据,进而基于计算公式对数据进行计算,即计算公式相当于是取数计算逻辑,利用该逻辑实现了计算所需数据从报表数据中的直接获取及计算,由于是从报表数据中直接获取数据并进行计算,所以过程中不会生成大量的中间数据集,如此令报告生成过程较为简单,减少了报告生成时间。

而且在生成图片过程中,根据公式的类型即可确定该计算结果是否用于生成图片,当确定计算结果用于生成图片时,则输入图片配置信息结合该计算结果生成图片,可见,用户只需定制图片对应的计算公式以及图片样式即可实现图片的自动生成,省去了现有技术用户提取相关数据进行图片生成的步骤,令报告的生成过程极大的自动化,提高了生成效率。

本申请另一实施例中,计算公式是基于antlr工具开发生成的,在解析计算公式时,采用该antlr工具对计算公式进行解析,如图2所示,该解析过程包括:

s200、对所述计算公式进行词法分析和语法分析,得到语法树;

具体的,对计算公式进行词法分析得到词法分析结果,进而对词法分析结果进行语法分析,得到语法树。

s210、对所述语法树进行遍历,并解析语法树中的每个节点得到运算关系和公式信息。

上述实施例中利用antlr进行公式的定制和解析,进而基于解析的信息进行数据的获取和公式的计算,进而实现了基于公式解析的报告模板生成。

在本申请另一实施例中,当公式标识为占位符时,根据所述公式标识获取计算公式的过程如图3所示,包括:

s300、对数占位符进行转码,得到计算公式的编码;

s310、从预置的计算公式的编码与计算公式的对应关系中确定计算公式。

上述实施例在模板中设置占位符,利用占位符得到计算公式,令报告模板呈现较为简洁。

下面以一个解析结果包括公式信息的例子,对公式的计算填充进行说明:

1)获取到一月分析报告模板,该报告中包括如公式占位符※315742654※;

2)对公式占位符进行转码,得到公式编码:adcababbbhacde,该编码位于${...}中,其中${...}是freemarker的参数形式,freemarker将会输出真实的值来替换大括号内的编码表达式,即${adcababbbhacde}代表需要计算的具体数值。

3)根据预置的计算公式的编码与计算公式的对应关系,在系统数据库中找到对应的计算公式以及该公式的类型标识,其中adcababbbhacde对应计算公式:l(g0300hy)sum_d(celidx=g03000690i6;val)/10000,该计算公式实际表示从g0300hy的excel数据表中获取celidx字段为g03000690i6的val字段值,其中每个字段值乘以常量1/10000,并对获取的字段值进行相加,得到结果表示某机构当前的库存现金值(单位为万元)。

4)解析上述计算公式得到公式变量:g0300hy、celidx=g03000690i6;val,公式常量为1/10000,运算关系为sum_d,即进行加运算。

5)根据变量信息从预先存储的报表数据中获取对应的数据,并基于运算关系和公式常量进行计算,得到计算结果。

6)将计算结果替换$大括号中的公式编码,显示在模板中。

本申请实施例还提供一种报告生成系统,如图4所示,所述系统包括:

第一获取单元400,用于获取预设的报告模板,所述报告模板中包括至少一个公式标识;

第二获取单元410,用于针对每个公式标识,获取该公式标识对应的计算公式和公式类型;

优选地,所述公式标识为占位符,则第二获取单元410包括:

转换单元,用于对所述占位符进行转码,得到计算公式的编码;

获取子单元,用于从预置的计算公式的编码与计算公式的对应关系中确定计算公式。

解析单元420,用于解析所述计算公式得到解析结果,所述解析结果包括:公式信息,或运算关系和公式信息,所述公式信息至少包括公式变量;

计算单元430,用于当解析结果包括所述公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,将所述公式变量对应的数据作为计算结果;当解析结果包括运算关系和公式信息时,从预先存储的报表数据中获取所述公式变量对应的数据,并对所述公式变量对应的数据基于所述运算关系进行计算,得到计算结果;

判断单元440,用于判断所述公式类型是否为图片公式类型;

第一替换单元450,用于当公式类型不是图片公式类型时,将报告模板中的公式标识替换为所述计算结果;

确定单元460,用于当公式类型是图片公式类型时,确定所述计算公式对应的图片配置信息;

生成单元470,用于根据所述计算结果和所述图片配置信息生成图片;

第二替换单元480,用于将所述报告模板中的公式标识替换为所述图片。

优选地,所述解析单元420包括:

第一分析单元,用于对所述计算公式进行词法分析和语法分析得到语法树;

第二分析单元,用于对所述语法树进行遍历,解析语法树中的每个节点,得到运算关系和公式信息。

优选地,所述生成单元470包括:

导入单元,用于将所述计算结果和所述图片配置信息按照jfreechart工具的要求导入到数据集中;

生成子单元,用于对数据集进行处理生成base64编码格式的图片.

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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