生成动态报告的方法、装置与系统的制作方法

文档序号:6381405阅读:177来源:国知局
专利名称:生成动态报告的方法、装置与系统的制作方法
技术领域
本发明涉及电子信息领域,尤其涉及ー种生成动态报告的方法、装置与系统。
背景技术
随着数字化技术的不断出现,各行各业每天都有大量的报告需要編制生成,而对于大多数报告而言,报告的格式模板都是相同的,不同的只是其中的数据元素,这些数据元素包括文字、表格、图片、图表,各种数学化学公式等等,除了这些元素外,还有对于样式的控制如字体、字号、顔色、段前距、段后距、字间距、行间距、项目符号、缩进、页眉页脚、边框、底纹等。一份报告的編制,如果全由人工来操作排版处理,那工作量将是巨大而繁琐的,耗时高且效率低下,准确性也相对较低,且在操作过程中容易出现排版样式错误,另外最重要 的是,有些报告的需求不只是需要对模板中的元素进行替换那么简单,而是需要在模板中有相应的逻辑控制功能,比如判断、分支、循环等,另外还要求精细化的排版以达到完美、支持分布式、批量快速生成等等、这就对动态生成报告提出了进ー步的要求,因而研究动态报告的生成以及解决这些问题具有重要意义。目前,生成动态报告的方案主要有以下几种ー是将报告的格式、样式、静态元素、动态数据等全部固化在程序代码中,这种方式非可视化,静态元素与动态数据完全混合在ー块,且全由代码组成,实现不够灵活,难以扩展、维护成本非常高。ニ是利用动态网页技术生成网页报告,即预先在Html标签中留出相应的位置定义变量,然后运行过程中进行替换。这种方式都是专业级开发使用的工具、且排版效果不够专业,诸如对报告进行分页、进行页眉、页脚的控制、以及报告目录的生成、报告中变量中内容的多少对分页的影响等都比较难以精细化控制、在打印过程中常常出现打印出现页码错误、页眉、页脚不在相应的位置,在灵活性、排版专业性较差。三是利用Word中的VBA技术实现文本、表格、图形的自动处理生成Word报告,这种方式需要了解大量控制和底层开发函数,控制机制复杂,不易扩展和维护,难以普及。因此,在现有技术中,动态报告的生成方式存在模板与数据混合导致实现不够灵活、排版效果差、报告格式単一的问题,对于该问题,目前尚未提出有效解决方案。

发明内容
本发明的主要目的是提供ー种生成动态报告的方法、装置与系统,以解决现有技术中动态报告的生成方式存在模板与数据混合导致实现不够灵活、排版效果差、报告格式单ー的问题。为了实现上述目的,根据本发明的ー个方面,提供了ー种生成动态报告的方法。本发明的生成动态报告的方法包括接收客户端请求生成动态报告的报告基础信息;对报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据;调用预定义的Word报告模板;根据Word报告模板中预设的动态标签与Xml数据的对应关系,将Word报告模板与Xml数据结合生成Word动态报告;将生成的Word动态报告转化成符合客户端请求的报告类型的最終动态报告。进ー步地,接收客户端请求生成动态报告的报告基础信息之后还包括生成报告ID号并返回给客户端;将报告ID号更新至数据库。进ー步地,方法还包括根据预设的生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态;将本次报告ID号对应的生成动态报告的处理状态更新至数据库。进ー步地,对报告基础信息进行数据解析之前还包括将报告基础信息存储在本地磁盘队列。进ー步地,方法还包括将最终动态报告分别存储到本地磁盘目录和远程服务器;将最终动态报告的存储路径更新至数据库。进ー步地,方法还包括将最终动态报告的报告元素版本信息分别更新至数据库和缓存。根据本发明的另一方面,提供了ー种生成动态报告的装置。本发明的生成动态报告的装置包括接收模块,用于接收客户端请求生成动态报告的报告基础信息;解析模块,用于对报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据;调用模块,用于调用预定义的Word报告模板;报告生成模块,用于根据Word报告模板中预设的动态标签与Xml数据的对应关系,将Word报告模板与Xml数据结合生成Word动态报告;转化模块,用于将生成的Word动态报告转化成符合客户端请求的报告类型的最終动态报告。进ー步地,装置还包括ID号生成模块,用于生成报告ID号并返回给客户端;ID号更新模块,用于将报告ID号更新至数据库。进ー步地,装置还包括确定模块,用于根据预设的生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态;状态更新模块,用于将本次报告ID号对应的生成动态报告的处理状态更新至数据库。进ー步地,装置还包括第一存储模块,用于将报告基础信息存储在本地磁盘队列。进ー步地,装置还包括第二存储模块,用于将最终动态报告分别存储到本地磁盘目录和远程服务器;路径更新模块,用于将最終动态报告的存储路径更新至数据库。进ー步地,装置还包括信息更新模块,用于将最终动态报告的报告元素版本信息分别更新至数据库和缓存。根据本发明的另一方面,提供了ー种生成动态报告的系统。本发明的生成动态报告的系统包括报告引擎,包括本发明的生成动态报告的装置;远程服务器,与报告引擎相连接,用于接收客户端发送的生成动态报告的请求,并把该请求发送给报告引擎;数据库,与报告引擎相连接。根据本发明的技术方案,通过预定义的Word报告模板与可视化数据解析生成的Xml数据文件相结合生成用户需要的动态报告,排版精细、操作简单、大大提升了整体效率,并能满足用户不同类型的需求。


说明书附图用来提供对本发明的进ー步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的生成动态报告的方法的主要步骤的流程图;图2是工作流编写数据解析流程的截图;图3是本发明实施例的生成动态报告的方法所生成的ー种Xml数据文件的截图;图4是图3中的Xml数据文件与报告模板的对应关系的截图;图5是本发明实施例的生成动态报告的方法所定义的ー种报告模板的截图50 ;图6是本发明实施例的生成动态报告的方法中取动态报告的主要步骤的流程图;图7是根据本发明实施例的生成动态报告的装置的主要模块的示意图;图8是根据本发明实施例的生成动态报告的系统的结构示意框图;以及图9是图8中报告引擎的运行机制图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将參考附图并结合实施例来详细说明本发明。本发明生成动态报告的方法、装置与系统用来定制各种类型的动态报告,适用于提前注册、在报告模板和数据模型预先定义的前提下实施。图1是根据本发明实施例的生成动态报告的方法的主要步骤的流程图。如图1所示,本发明的生成动态报告的方法主要包括如下步骤步骤SlOl :接收客户端请求生成动态报告的报告基础信息。在该步骤中,客户端请求生成动态报告的报告基础信息可以包括与报告有关的业务数据、报告标识号、租户信息、用户信息等信息,还可以包括能获取与报告有关的业务数据的用户ID等信息。其中,报告标识号是指在提前注册该种类型的报告时,为了识别为其定义的报告模板和数据模型而分配的识别号码。根据报告标识号,就能知道本次生成动态报告所用的报告模板和数据模型。步骤S103 :对报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据。在该步骤中,当接收到生成动态报告的报告基础信息之后,就会对报告基础信息进行数据解析,该解析的流程是采用可视化工作流的方式进行编写,该方式可通过拖拽的方式直接进行可视化编程。图2是工作流编写数据解析流程的截图20。如图2所示,该截图20示出了一种采用工作流编写的数据解析过程。该可视化的数据解析方式使得研发等人员在一定程度上可以亲身參与报告数据解析编制过程,使得多个人可以并行操作,提升整体效率。由于本发明生成动态报告的方法采用提前注册的形式,在提前注册的过程中,开发人员就会根据报告的要求定义业务领域模型,即Xml结构的数据模型,该模型中存储着报告所需的各种动态元素信息,比如用户信息、企业信息、报告动态文字条目、描述、动态图表等信息。在对报告基础信息进行解析之后,根据预定义的数据模型就会生成报告所需要的Xml数据。图3是本发明实施例的生成动态报告的方法所生成的ー种Xml数据文件的截图30。如图3所示,该截图30示出了一种职业兴趣的报告所对应的Xml数据文件。步骤S105 :调用预定义的Word报告模板。由于本发明生成动态报告的方法采用提前注册的形式,在提前注册的过程中,开发人员就会根据报告的要求定义报告模板,该报告模板米用Word格式,由于Word排版能力非凡,可以做到对报告样式精细化控制,如字体、字号、顔色、段前距、段后距、字间距、行间 距、项目符号、缩进、页眉页脚、边框、底纹等,这保障了所生成的动态报告具有专业级的排版效果。步骤S107 :根据Word报告模板中预设的动态标签与Xml数据的对应关系,将Word报告模板与Xml数据结合生成Word动态报告。在定义Word报告模板的过程中,开发人员会通过Xpath(XML Path Language,Xml路径语言)设置Word报告模板中动态标签与Xml数据文件节点的对应关系,根据这些对应关系从而生成所需要的动态报告。图4是图3中的Xml数据文件与报告模板的对应关系的截图40。如图4所示,该截图40示出了一种职业兴趣的报告模板与其Xml数据文件的对应关系,在动态标签姓名的Value Of所分配的属性处,显示了其对应的Xml数据文件节点的路径,根据该路径,该动态标签就能获取该路径对应的Xml数据文件节点的文本。此外,为了更灵活控制动态元素,在报告模板中加入逻辑控制标签,即判断、分支、循环语句等。图5是本发明实施例的生成动态报告的方法所定义的ー种报告模板的截图50。如图5所示,该截图50示出了一种校园招聘测评解决方案单人报告的报告模板,在该报告模板中,包含了静态的文字与图片,还包含了动态的标签、变量、以及逻辑控制判断、分支、循环语句等。其中,ValueOf表示获取对应的Xml数据文件节点的文本;If 表示逻辑判断;ImgOf表示获取对应的数据文件节点的文本;ForEach表示循环遍历指定Xml数据文件节点下的子节点。此タ卜,还可设置ImportTemplate表示导入另ー个docx文档模板;IncludeTemplate表示可导入其它格式文档;UseContext :使用上下文,类似JavaScript中的with用法。因此,逻辑控制标签的设置,使对动态元素的控制更加灵活多变,而不是简单的变量标签与内容的替换。在上述报告模板的动态标签占位符中可以设置Xpath,即对应Xml数据的路径,在生成Word报告时,会利用Xslt (Extensible Stylesheet Language Transformations,扩展样式表转换语言)将报告模板与Xml数据进行合井。在Word动态报告的生成过程中,用到的与之相关技术主要有Xml、Xpath、Xslt,我们知道OpenXml是微软在Office 2007中提出的ー种新的文档格式,Off ice 2007/2010中的WorcUExcel'PowerPoint默认均米用OpenXml格式。微软将以前的Microsoft Office版本中的ニ进制文件格式转换为Xml格式,使它包括轻松地在异构应用之间传递数据,以及允许用户从这些数据中搜集商业信息,IT专业人员也可以从通用的数据格式中直接操作数据,微软意识到采用开放的Xml格式和标准所能带来的商业价值,并发布了 OpenXml SDK,它构建于 Net 3. 0 中的 System. 10. Packaging API 之上,是对 Microsoft Office 2007、Office 2010中的OpenXML文档进行操作的托管类库,它使我们可以轻松访问Office文档中的对象。我们正是利用了 OpenXml这样的特性,将Xml、Xpath、Xslt进行有机融合,从而达到报告模板与报告数据结合生成最终报告。步骤S109 :将生成的Word动态报告转化成符合客户端请求的报告类型的最终动态报告。在实际应用中,不同的工作场景需要的报告类型是不同的,这就需要根据不同的 请求将Word动态报告转化成符合请求的报告类型的最終动态报告。譬如将Word动态报告转化成H)F、Html、Flash等格式,从而满足了不同的类型需求。在本实施例中,在动态报告的生成过程中还包括以下步骤I)在接收了客户端请求生成动态报告的报告基础信息之后,生成报告ID号并返回给客户端,将报告ID号更新至数据库。报告ID号的生成,使用户可以根据报告ID号及时查询动态报告的处理状态和获取生成的动态报告。2)根据预设的生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态;将本次报告ID号对应的生成动态报告的处理状态更新至数据库。在该步骤中,将生成动态报告的处理过程进行划分,井分别标记其状态为等待处理、处理中、处理完和处理有问题等,处理完后会将本地磁盘队列中的文件移至相应的目录。处理完且无问题的移完成目录,处理有问题的移失败目录;同时将处理状态更新至数据库,供用户端查询。其中,“处理中”状态又可以按照业务类型划分优先级,优先级可分高、中、低,优先处理高优先级。3)在对报告基础信息进行数据解析之前,先将报告基础信息存储在本地磁盘队列,以防数据丢失。4)分别存储到本地磁盘目录和远程服务器;将最终动态报告的存储路径更新至数据库。在该步骤中,为保证最终动态报告的文件安全,可以将最终动态报告分别存储到本地磁盘目录和远程服务器,并将存储路径更新至数据库。当用户取动态报告时,可以设定从本地磁盘目录和远程服务器取动态报告的优先级。5)将最终动态报告的报告元素版本信息分别更新至数据库和缓存。图6是本发明实施例的生成动态报告的方法中取动态报告的主要步骤的流程图。如图6所示,取动态报告主要包括以下步骤步骤S601 :接收客户端取动态报告的请求。在该步骤中,当动态报告生成之后,用户就会通过客户端井根据报告ID号反复存取使用。步骤S603 :分别从数据库和缓存中取出所取动态报告的报告元素版本信息。步骤S605 :判定数据库和缓存中的报告元素版本信息是否不同?在该步骤中,由于各种因素会导致动态报告的报告元素容易产生变化,当用户再来支取此报告时,就需要检测报告元素版本信息的变化情况,譬如,当缓存中的姓名元素的版本为2. 0,而数据库中的姓名元素的版本还为1. 0,则检测结果就是报告元素版本信息产生了变化。若报告元素版本信息产生了变化,执行步骤S607,否则执行步骤S611。步骤S607 :将缓存中的报告元素版本信息与数据库同歩。在该步骤中,当报告元素版本信息产生变化时,就需要将缓存中的报告元素版本信息与数据库同歩。步骤S609 :重新生成动态报告。步骤S611 :返回报告結果。由以上描述可知,本发明的生成动态报告的方法,通过预定义的Word报告模板与可视化数据解析生成的Xml数据文件相结合生成用户需要的动态报告,排版精细、操作简单、动态元素控制灵活、大大提升了整体效率,并能满足用户不同类型的需求。图7是根据本发明实施例的生成动态报告的装置700的主要模块的示意图。如图7所示,该装置主要包括接收模块701,用于接收客户端请求生成动态报告的报告基础信息。解析模块703,用于对报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据。调用模块705,用于调用预定义的Word报告模板。报告生成模块707,用于根据Word报告模板中预设的动态标签与Xml数据的对应关系,将Word报告模板与Xml数据结合生成Word动态报告。转化模块709,用于将生成的Word动态报告转化成符合客户端请求的报告类型的最終动态报告。ID号生成模块711,用于生成报告ID号并返回给客户端。ID号更新模块713,用于将报告ID号更新至数据库。确定模块715,用于根据预设的生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态。状态更新模块717,用于将本次报告ID号对应的生成动态报告的处理状态更新至数据库。第一存储模块719,用于将报告基础信息存储在本地磁盘队列。第二存储模块721,用于将最终动态报告分别存储到本地磁盘目录和远程服务器。路径更新模块723,用于将最終动态报告的存储路径更新至数据库。信息更新模块725,用于将最终动态报告的报告元素版本信息分别更新至数据库和缓存。本发明的生成动态报告的装置700,通过设置解析模块703、调用模块705、报告生成模块707和转化模块709,将预定义的Word报告模板与可视化数据解析生成的Xml数据文件相结合生成用户需要的动态报告,排版精细、操作简单、动态元素控制灵活、大大提升了整体效率,并能满足用户不同类型的需求。图8是根据本发明实施例的生成动态报告的系统800的结构示意框图。如图8所示,该系统主要包括报告引擎801,包括本发明的生成动态报告的装置700。远程服务器803,与报告引擎801相连接,用于接收客户端100发送的生成动态报告的请求,并把该请求发送给报告引擎801。优选地,远程服务器803为ESB企业服务总线。数据库805,与报告引擎801相连接,主要用来保存与生成动态报告相关的信息。在本实施例中,报告引擎801分为两部分,一部分需要部署到ESB企业服务总线上,主要负责业务客户端的请求调用,检测处理状态、取回报告结果等。另外一部分是WindowsServices服务,主要用于处理队列中的报告生成任务,处理完成后生成各种动态报
生ロ o另外,在本实施例中,当Word报告模板及Xml数据模型定义好之后,就会将相关的报告组件通过配置文件注册到报告引擎801的框架上,同时将业务组件的动态库,以及与报告模板文件,报告模板中的静态图片等资源文件放到指定目录中,在生成报告的过程中会取这些资源。图9是图8中报告引擎801的运行机制图。如图9所示,报告引擎801将Word报告模板Template与Xml数据文件Data结合生成Word动态报告,再根据类型要求,将Word动态报告转化成Html/MHT网页或PDF或Flash,这些类型的动态报告还可通过打印机Print进行打印。从以上的描述中,可以看出,本发明的生成动态报告的系统800由于包括本发明的生成动态报告的装置700,同样可以将预定义的Word报告模板与可视化数据解析生成的Xml数据文件相结合生成用户需要的动态报告,排版精细、操作简单、动态元素控制灵活、大大提升了整体效率,并能满足用户不同类型的需求。综上所述,本发明的生成动态报告的方法、装置与系统,通过预定义的Word报告模板与可视化数据解析生成的Xml数据文件相结合生成用户需要的动态报告,排版精细、操作简单、大大提升了整体效率,并能满足用户不同类型的需求。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种生成动态报告的方法,其特征在于,包括 接收客户端请求生成动态报告的报告基础信息; 对所述报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据; 调用预定义的Word报告模板; 根据所述Word报告模板中预设的动态标签与所述Xml数据的对应关系,将所述Word报告模板与所述Xml数据结合生成Word动态报告; 将生成的所述Word动态报告转化成符合所述客户端请求的报告类型的最终动态报生口 ο
2.根据权利要求1所述的方法,其特征在于,所述接收客户端请求生成动态报告的报告基础信息之后还包括 生成报告ID号并返回给所述客户端; 将所述报告ID号更新至数据库。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括 根据预设的所述生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态; 将所述本次报告ID号对应的生成动态报告的处理状态更新至数据库。
4.根据权利要求1所述的方法,其特征在于,对所述报告基础信息进行数据解析之前还包括 将所述报告基础信息存储在本地磁盘队列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括 将所述最终动态报告分别存储到本地磁盘目录和远程服务器; 将所述最终动态报告的存储路径更新至数据库。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括 将所述最终动态报告的报告元素版本信息分别更新至数据库和缓存。
7.—种生成动态报告的装置,其特征在于,包括 接收模块,用于接收客户端请求生成动态报告的报告基础信息; 解析模块,用于对所述报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据; 调用模块,用于调用预定义的Word报告模板; 报告生成模块,用于根据所述Word报告模板中预设的动态标签与所述Xml数据的对应关系,将所述Word报告模板与所述Xml数据结合生成Word动态报告; 转化模块,用于将生成的所述Word动态报告转化成符合所述客户端请求的报告类型的最终动态报告。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括 ID号生成模块,用于生成报告ID号并返回给所述客户端; ID号更新模块,用于将所述报告ID号更新至数据库。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括 确定模块,用于根据预设的所述生成动态报告的处理过程与处理状态之间的对应关系,确定本次报告ID号对应的生成动态报告的处理状态;状态更新模块,用于将所述本次报告ID号对应的生成动态报告的处理状态更新至数据库。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括 第一存储模块,用于将所述报告基础信息存储在本地磁盘队列。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括 第二存储模块,用于将所述最终动态报告分别存储到本地磁盘目录和远程服务器; 路径更新模块,用于将所述最终动态报告的存储路径更新至数据库。
12.根据权利要求7至11中任一项所述的装置,其特征在于,所述装置还包括 信息更新模块,用于将所述最终动态报告的报告元素版本信息分别更新至数据库和缓存。
13.—种生成动态报告的系统,其特征在于,包括 报告引擎,包括权利要求7至12中任一项所述的生成动态报告的装置; 远程服务器,与所述报告引擎相连接,用于接收客户端发送的生成动态报告的请求,并把该请求发送给所述报告引擎; 数据库,与所述报告引擎相连接。
全文摘要
本发明提供了一种生成动态报告的方法、装置与系统,用以解决现有技术中动态报告的生成方式存在模板与数据混合导致实现不够灵活、排版效果差、报告格式单一的问题。该方法包括接收客户端请求生成动态报告的报告基础信息;对报告基础信息进行数据解析,并根据预定义的数据模型生成Xml数据;调用预定义的Word报告模板;根据Word报告模板中预设的动态标签与Xml数据的对应关系,将Word报告模板与Xml数据结合生成Word动态报告;将生成的Word动态报告转化成符合客户端请求的报告类型的最终动态报告。采用本发明的技术方案,有助于提高效率和排版效果,并能满足用户不同类型的需求。
文档编号G06F17/24GK103020027SQ20121046085
公开日2013年4月3日 申请日期2012年11月16日 优先权日2012年11月16日
发明者闫观涛, 刘生权 申请人:北京北森测评技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1