本发明专利技术公开一种可扩展基于脚本的Word报告生成系统及方法,包括Word报告模板定制模块、Word报告模板转换模块、数据访问接口模块,所述Word报告模板定制模块,提供模板定制规范,对用户定制的模板进行错误检测;所述Word报告模板转换模块,提供对用户编写的Word模板进行脚本化的转换过程,最终将生成一个可执行的脚本文件;所述数据访问接口模块,定义了如何对数据进行访问,模板中脚本语句通过数据访问接口获取报告数据源数据。本发明专利技术所提供的系统及方法,解决了格式控制不灵活、数据处理不方便的问题。
【技术实现步骤摘要】
可扩展基于脚本的Word报告生成系统及方法
本专利技术涉及计算机应用
,更具体的说,涉及一种可扩展基于脚本的报告生成系统及方法。
技术介绍
Word是世界上使用范围最广泛的文字处理系统,每天都有大量的word报告需要编制,例如在服务器运行日常管理工作中,针对每一台服务器的运行情况都需要编写日报、周报、月报、季报和年报。这些报告的格式几乎都是固定的,只是其中涉及的具体参数和数据不同而已。如果仅依靠人工进行处理,大量的查询、复制和粘贴工作,不但繁琐、耗时、效率低下,而且还容易出错,降低了报告的准确性。因此,研究word报告的自动生成功能具有重要的应用价值。Docx格式是微软定义的最新的Word文件标准格式,它使用XML对文件内容进行标记说明,是一种相对开放的文件格式。目前,Word报告自动生成方法有以下几种:1、文档光标跟踪定位方法(叶明,张诤,基于C#.NET的Word报告生成功能开发,计算机工程与应用,2008,44(9):104-106)。该方法的主要原理是通过跟踪和控制Word文档内部光标的位置来控制文档内容的起始和相应的格式,并在相应位置上插入指定的内容。其缺点是:报告的版面、样式和内容必须通过程序顺序输入;此外,该方案不够完整,没有涉及用户对数据信息的筛选操作。2、利用OLE或COM技术直接控制Word(鲁保玉,杨新芳,用Delphi生成Word报告及动态结构表格,计算机软件与应用,2007,4(3):180-183;孔令彦,黄蓬勃,姜青香等,使用VisualBasic操纵MicrosoftWord对象生成报告文档,计算机工程与应用,2003,39(36):115-117)。该方法的主要原理是利用OLE或COM技术直接控制Word,将数据库表结构中的列信息作为标签插入Word文档中以定义模板,在Word中添加自定义窗体连接数据库,在生成文档时从数据库中读取数据,并自动填写到模板中的相应位置上。3、基于多种技术的Word文档自动生成方法(葛芬,吴宁,基于多种技术的Word设计文档自动生成平台,电子科技大学学报,2007,36(2))。该方法的主要原理是利用VBA将一篇规范的通用文档中可允许被替换的部分采用插入批注的形式设置标签,并把文档及其中的标签信息存储到数据库服务器中,下一步在Asp页面上提供输入框由用户为标签赋值,最后利用用户输入值替换通用文档中标签处的内容生成新的文档。其缺点是:VBA程序全部嵌入到客户端Word应用程序中,部署不够方便;并且VBA界面元素不够丰富,只支持简单的文本录入形式,对于表格、图片等没有后台方法支持。以上技术都主要是直接操作Word文档对象,其共同缺陷是格式控制不灵活,数据处理不方便。
技术实现思路
本专利技术针对上述现有技术中存在的技术问题,提供一种可扩展基于脚本的Word报告生成系统及方法,解决了格式控制不灵活、数据处理不方便的问题。为达到上述目的,本专利技术所采用的技术方案如下:一种可扩展基于脚本的Word报告生成系统,包括Word报告模板定制模块、Word报告模板转换模块、数据访问接口模块。Word报告模板定制模块,提供了模板定制规范,对用户定制的模板进行错误检测。Word报告模板转换模块,提供了对用户编写的Word模板进行脚本化的转换过程,最终将生成一个可执行的脚本文件。数据访问接口模块,定义了如何对数据进行访问,模板中脚本语句通过数据访问接口获取报告数据源数据。所述Word报告模板定制模块包括脚本提示模块和脚本检查模块。所述Word报告模板转换模块包括脚本动作处理模块、Word段落内容整合模块以及XML到脚本的转换模块,其中,Word段落内容整合模块是将段落内容合并,XML到脚本的转换模块用来将带有脚本标记的XML结果转换为一个可执行的脚本文件。所述数据访问接口模块包括数据访问接口的定义模块和具体的数据源访问逻辑模块,其中,数据访问接口的定义模块定义了报告如何访问一个数据,而具体的数据源访问逻辑模块,定义了如何对某个数据源的数据进行访问。一种可扩展基于脚本的Word报告生成方法,采用上述的系统来完成,包括以下步骤:1)编写数据访问接口不局限某种特定的来源数据格式,可以将任意格式的数据生成Word报告,但针对特殊格式的数据需要提供一个数据访问接口,对报告模板定制人员来说只关心使用的数据访问接口,不关心数据格式。2)定制报告模板通过定义的模板脚本编写方式插入脚本,在脚本中控制报告的显示样式,数据处理过程,最终结果就是一份定制好的Word形式的报告模板。3)将报告模板转化为可执行的脚本代码通过对报告文件格式分析,对Docx文件中的XML文件进行重新调整,生成对应的可执行脚本文件。本专利技术技术方案的有益效果如下:本专利技术不仅可以非常灵活的定制各种数据内容,而且可以非常灵活的对报告样式进行定制,并且本专利技术对最终报告结果页数没有限制,几千页报告都可以正常处理。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术一实施例的系统组成框图;图2是本专利技术一实施例的工作流程图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术的保护范围。图1所示,本专利技术所提供的可扩展基于脚本的Word报告生成系统,包括,Word报告模板定制模块、Word报告模板转换模块、数据访问接口模块。Word报告模板定制模块,又包含脚本提示模块,脚本检查模块。Word报告模板转换模块又包括脚本动作处理模块,Word段落内容整合模块,XML到脚本的转换模块,其中脚本动作处理模块是将一些特殊的动作,例如将脚本移动到XML当前节点外层,应用的XML结构中。Word段落内容整合模块,主要是将段落内容合并,因为Word可能将一个段落内容存储在多个XML节点中,那么如果要分析脚本信息,必须将段落进行合并处理。XML到脚本的转换模块,该模块用来将带有脚本标记的XML结果转换为一个可执行的脚本文件。数据访问接口模块包含了两个部分,一个是数据访问接口的定义模块,另一个是具体的数据源访问逻辑模块,其中,数据访问接口的定义模块定义了报告如何访问一个数据,而具体的数据源访问逻辑模块,则具体的定义了如何对某个数据源的数据进行访问。Word报告模板定制模块,提供了模板定制规范,对用户定制的模板进行错误检测。Word报告模板转换模块,提供了对用户编写的Word模板进行脚本化的转换过程,最终将生成一个可执行的脚本文件。数据访问接口模块,定义了如何对数据进行访问,模板中脚本语句通过数据访问接口获取报告数据源数据。图2所示,本专利技术提供的基于脚本的Word报告自动生成方法,分为以下步骤:1)定义数据访问接口2)定制模板3)模板转换3)生成报告本专利技术实施例定义了一种特有的数据接口定义,方便模板定制者对数据接口进行定义说明,基本格式示例如下:定制模板过程完全在Word文档内完成。本实施例定义了一种Word文档内脚本表达的方式,通过将{}作为特殊标记符号,认为其中内容就是脚本或设置内容,本专利技术本文档来自技高网...
【技术保护点】
一种可扩展基于脚本的Word报告生成系统,其特征在于,包括Word报告模板定制模块、Word报告模板转换模块、数据访问接口模块,所述Word报告模板定制模块,提供模板定制规范,对用户定制的模板进行错误检测;所述Word报告模板转换模块,提供对用户编写的Word模板进行脚本化的转换过程,最终将生成一个可执行的脚本文件;所述数据访问接口模块,定义了如何对数据进行访问,模板中脚本语句通过数据访问接口获取报告数据源数据。
【技术特征摘要】
1.一种可扩展基于脚本的Word报告生成系统,其特征在于,包括Word报告模板定制模块、Word报告模板转换模块、数据访问接口模块,所述Word报告模板定制模块,提供模板定制规范,对用户定制的模板进行错误检测;所述Word报告模板转换模块,提供对用户编写的Word模板进行脚本化的转换过程,最终将生成一个可执行的脚本文件;所述数据访问接口模块,定义了如何对数据进行访问,模板中脚本语句通过数据访问接口获取报告数据源数据。2.根据权利要求1所述的可扩展基于脚本的Word报告生成系统,其特征在于,所述Word报告模板定制模块包括脚本提示模块和脚本检查模块。3.根据权利要求1所述的可扩展基于脚本的Word报告生成系统,其特征在于,所述Word报告模板转换模块包括脚本动作处理模块、Word段落内容整合模块以及XML到脚本的转换模块,其中,Word段落内容整合模块是将段落内容合并,XML到脚本的转换模块用来将带有脚本标记的XML结果转换为一个可执行的脚本文件。4.根据权利要求1所述的可扩展基于脚本的Word报告生成系...
【专利技术属性】
技术研发人员:杨波波,王伟,张志强,
申请(专利权)人:上海创景计算机系统有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。