一种基于excel平台构建的web报表设计系统及实现方法
【专利摘要】本发明公开了一种基于EXCEL平台构建的WEB报表设计系统及其实现方法,研发的报表设计系统以EXCEL外接程序的方式运行,能够在充分利用EXCEL优越的报表格式设计功能及重用部分原生菜单功能的基础上以较低成本实现WEB报表开发系统。借助EXCEL自身的表格界面,易于实现国内报表的各种复杂格式。
【专利说明】—种基于EXCEL平台构建的WEB报表设计系统及实现方法
【技术领域】
[0001]本发明涉及计算机软件应用领域,尤其涉及一种基于EXCEL平台构建的WEB报表设计系统。
【背景技术】
[0002]随着互联网的广泛应用,电子政务、电子商务以及企业信息化得到迅猛发展,数据的采集、传输、展示、交互、等问题显得越来越重要。报表作为一种信息组织和展示的有力手段,是企业信息系统的重要组成部分。据不完全统计,企业系统的实际应用中,有60%以上与报表相关。报表系统在各行各业中都有很广泛的用途,是进行信息浏览、分析、打印的有力工具。随着WEB技术的发展,企业系统从传统的客户端/服务器架构逐步向浏览器/服务器架构转移,企业信息系统也正向基于Web的信息系统进行转变,越来越多的报表应用将在Web环境下开发与运行。在WEB报表开发系统研发过程中,主要包括报表设计器开发、报表服务器开发及浏览器端报表展示机制开发,其中难度最大的就是报表设计器开发。报表设计器开发涉及到报表模型设计、图形界面的管理及众多功能,从头开发技术难度很高。
[0003]近年来,国内外各个领域对于web报表的研究也在逐渐增多,不过传统的报表工具主要采用C/S结构,而面向web的报表系统需要采用B/S结构。借助于web报表工具,就能随时随地的使用浏览器去访问各种数据资源。目前,主流的报表工具有很多,国外主要是水晶报表、快速报表系统、微软报表服务等,国内主要的是杰表、中创、润乾、帆软等。
[0004]水晶报表,是目前业内最专业功能最强的报表系统。它可以将报表制作功能与web及windows应用程序结合,利用各种资料来源,建立高品质报表。但是就其目前在国内使用的情况来看,国内报表习惯于excel的表格格式,而水晶报表不能很好的处理大量的excel型报表文件,所以这也成为水晶报表的一个限制因素。
[0005]快速报表系统(FastR印ort),是一个俄国人开发的报表系统,报表设计器的图形化用户界面做得非常精致,她是典型的控件拖放的设计模式。报表分为几个大块(Band),这些块区分为页眉,表身和页脚,其中只有一个页眉和页脚,可以有多个表身。
[0006]微软报表服务是提供的报表设计器是基于VS.NET的,因此若要设计报表则必须安装昂贵的VS.NET集成开发环境。它采用控件拖拽的设计模式,但表格内部则采用类似Excel的编辑方式。
[0007]润乾报表是国内比较先进的报表系统,她的设计器采用类似Excel样式的表格设计方式,她的报表模型比较先进,包括报表排版模型,报表参数和宏定义等概念。
[0008]杰创网络报表一般简称为杰表。它技术比较先进,完全用Java实现,兼容j2ee平台。它的报表设计器是用Java写的,它的设计模式总体上是基于控件拖放,它没有Band的概念,报表设计界面直接分为页眉,主体和页脚,用户可以在在界面上拖放操作放置表格控件,但表格控件内部却是类似Excel的电子表格设计模式,因此它的设计器的设计模式实际上是控件拖放和电子表格的结合。
[0009]中创软件,是一个中间件厂商,其中报表工具是其一个重要产品。它是针对B/S环境下的报表工具,采用类似Excel的排版方式。
[0010]以上厂商提供的报表设计器按照操作模式可以分为两类:基于控件拖放的设计模式和基于类似Excel电子表格的设计模式。基于控件拖放的设计模式实现起来比较方便,技术成熟,但不适应类似中国式的复杂报表,因为这需要进行精细的对齐操作,生成的报表输出为HTML或Excel文档时比较难于处理。而Excel电子表格的设计模式实现起来比较复杂,但能处理中国式的复杂报表,能比较方便的生成HTML或Excel文档。因此一般认为类似Excel电子表格的报表设计器比较先进,符合中国国情。
[0011]起步科技公司开发的X5快速开发平台中,其报表设计器与上述报表系统相比具有鲜明特色。该工具将EXCEL嵌入到设计器中,用户可以在EXCEL中设计表单布局及字体风格,但其他主要工作在EXCEL平台外的报表设计器中完成。这种方式既可以利用EXCEL强大的报表格式设计功能,又免去了在报表设计器中开发表格组件的工作量。
[0012]对于水晶报表和快速报表,由于其报表格式主要米取拖拽式设计,格式对齐与调整相当费时,难以满足国内报表设计的需求。
[0013]微软报表服务、润乾报表、杰创网络报表、中创软件等报表系统采用了类EXCEL表格的形式设计报表格式,符合国内报表用户的需求,但这类报表系统从头实现的技术难度大、开发成本高。
[0014]起步科技的X5快速开发平台的报表设计器中,虽然通过内嵌EXCEL用于报表格式设计,但这种模式下报表设计器与EXCEL只是一种松散的耦合,没有充分利用EXCEL提高的二次开发机制,开发报表设计器仍然具有相当大的工作量。
[0015]综上所述,报表是企业应用软件必不可少的部分,当前很多应用的报表都以WEB页面的形式呈现,国内外WEB报表开发工具也不少,主要存在如下问题:
[0016]研发一套用于报表设计的报表开发系统工作量很大,技术水平要求高,因此开发成本很高、周期很长。
[0017]国内报表格式复杂,边框和线条很多,拖拽式设计的报表开发工具在设计中式报表时费时费力,效率低下。
【发明内容】
[0018]本发明目的在于提供一种基于EXCEL平台二次开发的WEB报表开发系统以及实现方法,研发的报表设计器以EXCEL外接程序的方式运行,能够在充分利用EXCEL优越的报表格式设计功能及重用部分原生菜单功能的基础上以较低成本实现WEB报表开发系统。
[0019]本发明提供的技术方案是:一种基于EXCEL平台构建的WEB报表设计系统,包括报表设计器,报表设计器以EXCEL外接程序的方式存在,报表设计器的菜单加载在EXCEL的菜单栏上,同时保留部分EXCEL原有的与格式编辑相关的菜单项,包括字体设置,边框设置,文本对齐,页面设置、重做与撤销、合并及拆分单元格,用户报表格式设计及数据源设计完成后,保存到本地文件夹或同时提交到数据库服务器中;若需查看报表展示效果,可通过WEB浏览器访问WEB服务器上的指定链接,WEB服务器将从数据库中获取报表格式文件,使用其中包含的格式信息及数据源信息生成WEB报表,发送给WEB浏览器,设计者可以看到报表的展示效果,若不符合要求,可根据需要调整EXCEL中的报表格式,并提交再浏览。
[0020]本发明还提供了一种基于EXCEL平台构建的WEB报表设计系统的实现方法,包括以下步骤:
[0021]步骤I):启动EXCEL应用程序;通过报表设计器加载器的独立应用程序实现,报表设计器加载与退出管理步骤包括:修改注册表,配置报表设计器外接程序的加载行为(Loadbehav1r)为EXCEL启动时自动加载;启动EXCEL ;退出报表设计器加载器;执行报表设计;退出报表设计器;报表设计器中检测退出事件,并在其对应处理代码中将报表设计器外接程序设置为EXCEL启动时不加载;
[0022]步骤2):加载报表设计器外接程序;在步骤I)的设置后启动EXCEL,则报表设计器外接程序被自动加载;加载后的报表设计器外接程序,其菜单组织特征为:1)屏蔽EXCEL原有菜单,菜单栏上仅包含报表设计器需要的菜单项;2)在设计报表设计器的菜单时,重组并重用EXCEL中部分用于表格格式编辑功能的菜单项;3)重用的EXCEL原有的菜单项无需编写代码,直接使用,仅需对报表设计器中新增的功能编写代码;
[0023]步骤3):配置数据源;配置从报表需要展示的数据来源,通过在设计器的界面上编辑查询数据库数据的结构化查询语言SQL语句实现,配置好的数据源被暂存在设计器全局变量中;
[0024]步骤4):编辑报表格式;包括设置报表表格样式、报表表头文字、报表标题及数据字段,其中数据字段与步骤3)设置的数据源中获取到的数据字段一致;
[0025]步骤5):保存报表格式文件;
[0026]步骤6):提交报表格式文件至数据库;将报表格式文件保存到数据库中的数据表的相应字段中;
[0027]步骤7):在WEB浏览器中预览报表执行结果。
[0028]进一步的,所述的步骤5)保存报表格式文件包括以下步骤:
[0029](I)创建空白报表文档对象;(2)在报表文档对象中添加报表的各种内容子节点;
(3)搜索报表设计器表格,添加报表标题、表头及数据字段集合及其它界面内容至对应的内容子节点;(4)获取设计器全局变量中保存的报表设计结果,添加到报表格式文档对象的相应内容子节点,全局变量中包含报表类型、设计者等信息;(5)保存报表格式文档对象至本地文件。
[0030]更进一步的,所述步骤7)在WEB浏览器中预览报表执行结果包括如下步骤:
[0031 ] a)在浏览器中输入报表访问地址,此地址包括通用报表访问连接加上要访问的报表的ID ;
[0032]b)在WEB服务器端接收用户请求,并解析出要访问的报表ID ;
[0033]c)根据此报表ID从数据库中读取报表格式文件;
[0034]d)从格式文件中获取数据源;
[0035]e)执行数据源,获取报表数据;
[0036]f)根据报表格式文件中的格式要求及报表数据,创建报表页面;
[0037]g)发送报表页面至浏览器供用户浏览。
[0038]本发明的有益效果是:
[0039]通过简单地编辑菜单配置文件,重用报表设计中需要的EXCEL部分原有菜单,如字体设置,边框设置,页面设置、重做与撤销、合并及拆分单元格等功能;
[0040]借助EXCEL自身的表格界面,易于实现国内报表的各种复杂格式,此外,设计器中的多报表同时设计及单个报表的多个设计窗口也可以通过EXCEL中的多工作簿及一个工作簿中含多个工作表来实现,无需额外编程。
[0041]借助VST0(Visual Stud1 Tools for Office)OFFICE 外接程序设计技术,对于拖拽事件处理机制、报表设计器界面上的设计信息的获取及转换都很容易实现,有利于报表设计器功能的快速开发。
[0042]术语解释:
[0043]EXCEL外接程序,包含一个与某个Microsoft EXCEL应用程序关联的程序集。通常,该外接程序在关联的应用程序启动时运行,当然,用户也可以在关联应用程序已在运行时加载外接程序。但此外接程序不能脱离EXCEL独立运行。EXCEL外接程序可将其功能菜单增加到EXCEL菜单栏上,也可以选择性地屏蔽其原有菜单。
【专利附图】
【附图说明】
[0044]当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,其中:
[0045]图1是本发明的WEB报表设计系统框图;
[0046]图2是本发明WEB报表设计系统实现方法的总体流程框图;
[0047]图3是报表设计器加载与退出管理的流程框图;
[0048]图4是保存报表格式文件的流程框图;
[0049]图5是在WEB浏览器中预览报表执行结果的流程框图。
【具体实施方式】
[0050]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0051]本发明提出的一种基于EXCEL平台构建的WEB报表设计系统如图1所示出,报表设计器以EXCEL外接程序的方式存在,报表设计器的菜单加载在EXCEL的菜单栏上,同时保留部分EXCEL原有的与格式编辑相关的菜单项,包括字体设置,边框设置,文本对齐,页面设置、重做与撤销、合并及拆分单元格等功能、用户报表格式设计及数据源设计完成后,可以保存到本地文件夹,也可以同时提交到数据库服务器中;若需查看报表展示效果,可通过浏览器访问WEB服务器上的指定链接,WEB服务器将从数据库中获取报表格式文件,使用其中包含的格式信息及数据源信息生成WEB报表,发送给浏览器,设计者可以看到报表的展示效果,若不符合要求,可根据需要调整EXCEL中的报表格式,并提交再浏览。
[0052]参考附图2,本发明一种基于EXCEL平台构建的WEB报表设计系统的实现方法包括以下步骤,
[0053]步骤I):启动EXCEL应用程序;
[0054]通过报表设计器加载器的独立应用程序实现(非指报表设计器代表的EXCEL外接程序)。
[0055]参考附图3,报表设计器加载与退出管理主要步骤包括:
[0056]修改注册表,配置报表设计器外接程序的加载行为(Loadbehav1r)为EXCEL启动时自动加载;
[0057]启动EXCEL;
[0058]退出报表设计器加载器;
[0059]执行报表设计;
[0060]退出报表设计器;
[0061]报表设计器中检测退出事件,并在其对应处理代码中将报表设计器外接程序设置为EXCEL启动时不加载。
[0062]步骤I)的原因在于:1)以EXCEL外接程序存在的报表设计器是一个动态链接库,无法独立启动,因此无法在桌面上创建报表设计器的快捷方式以启动它;2)以EXCEL外接程序存在的报表设计器安装后,会自动配置为“EXCEL启动则自动加载”模式,则EXCEL每次启动都会是报表设计器的界面而非EXCEL原生界面,用户若想恢复成EXCEL原生界面进行电子表格编辑需要进行复杂操作,退出EXCEL后下次再启动报表设计器又需要复杂的手动加载。采用步骤I方法好处在于:启动“报表设计器加载器”则启动后EXCEL的菜单均为报表设计器的菜单,进入报表设计模式,若直接启动EXCEL则所有菜单为EXCEL原生菜单,进入电子表格编辑模式,无需用户手动切换这两种模式。
[0063]步骤2):加载报表设计器外接程序;在步骤I的设置后启动EXCEL,则报表设计器外接程序被自动加载,以EXCEL外接程序形式存在的报表设计器,其菜单组织具有如下特征:1)屏蔽EXCEL原有菜单,菜单栏上仅包含报表设计器需要的菜单项,而不是将报表设计器的菜单作为一个功能区插入到EXCEL的菜单栏中;2)在设计报表设计器的菜单时,重组并重用EXCEL中部分用于表格格式编辑功能的菜单项;3)重用的EXCEL原有的菜单项无需编写代码,直接使用,仅需对报表设计器中新增的功能编写代码。此菜单组织方式的优点是:使EXCEL能够表现为一个纯粹的报表设计器,而不是表现为一个具有报表设计功能的EXCEL,同时,重用原有菜单项能有效地降低报表设计器开发工作量。
[0064]步骤3):配置数据源;配置从报表需要展示的数据来源,设计者通过在设计器的界面上编辑查询数据库数据的结构化查询语言(SQL)语句实现。配置好的数据源被暂存在设计器全局变量中。
[0065]步骤4):编辑报表格式;设置报表表格样式、报表表头文字、报表标题及数据字段,其中数据字段与步骤3)设置的数据源中获取到的数据字段一致,还涉及到页面设置,对齐等。本步骤涉及到的功能大量用到EXCEL自带的菜单及表格编辑功能。
[0066]步骤5):保存报表格式文件;具体步骤包括:(如图4所示出)
[0067](I)创建空白报表文档对象;
[0068](2)在报表文档对象中添加报表的各种内容子节点;
[0069](3)搜索报表设计器表格,添加报表标题、表头及数据字段集合及其它界面内容至对应的内容子节点;
[0070](4)获取设计器全局变量中保存的报表设计结果,添加到报表文档对象的相应内容子节点,全局变量中包含报表类型、设计者等信息;
[0071](5)保存报表文档对象至本地文件。
[0072]步骤6):提交报表格式文件至数据库;将报表格式文件保存到数据库中的数据表的相应字段中。
[0073]步骤7):在WEB浏览器中预览报表执行结果,包括如下步骤:
[0074]a)在浏览器中输入报表访问地址,此地址包括通用报表访问连接加上要访问的报表的ID ;
[0075]b)在WEB服务器端接收用户请求,并解析出要访问的报表ID ;
[0076]c)根据此报表ID从数据库中读取报表格式文件;
[0077]d)从格式文件中获取数据源;
[0078]e)执行数据源,获取报表数据;
[0079]f)根据报表格式文件中的格式要求及报表数据,创建报表页面;
[0080]g)发送报表页面至浏览器供用户浏览。
[0081]本发明步骤I)所述报表设计器加载与退出管理,也可以采用手动管理方式:在EXCEL启动后,在EXCEL选项窗口中,打开COM加载项窗口,手动选择加载还是不加载报表设计器。以上实例的说明只是用于帮助理解本发明的核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种基于EXCEL平台构建的WEB报表设计系统,其特征在于,包括报表设计器,报表设计器以EXCEL外接程序的方式存在,报表设计器的菜单加载在EXCEL的菜单栏上,同时保留部分EXCEL原有的与格式编辑相关的菜单项,包括字体设置,边框设置,文本对齐,页面设置、重做与撤销、合并及拆分单元格,用户报表格式设计及数据源设计完成后,保存到本地文件夹或同时提交到数据库服务器中;若需查看报表展示效果,可通过WEB浏览器访问WEB服务器上的指定链接,WEB服务器将从数据库中获取报表格式文件,使用其中包含的格式信息及数据源信息生成WEB报表,发送给WEB浏览器,设计者可以看到报表的展示效果,若不符合要求,可根据需要调整EXCEL中的报表格式,并提交再浏览。
2.—种基于EXCEL平台构建的WEB报表设计系统的实现方法,其特征在于,包括以下步骤: 步骤I):启动EXCEL应用程序;通过报表设计器加载器的独立应用程序实现,报表设计器加载与退出管理步骤包括:修改注册表,配置报表设计器外接程序的加载行为(Loadbehav1r)为EXCEL启动时自动加载;启动EXCEL ;退出报表设计器加载器;执行报表设计;退出报表设计器;报表设计器中检测退出事件,并在其对应处理代码中将报表设计器外接程序设置为EXCEL启动时不加载; 步骤2):加载报表设计器外接程序;在步骤I)的设置后启动EXCEL,则报表设计器外接程序被自动加载;加载后的报表设计器外接程序,其菜单组织特征为:1)屏蔽EXCEL原有菜单,菜单栏上仅包含报表设计器需要的菜单项;2)在设计报表设计器的菜单时,重组并重用EXCEL中部分用于表格格式编辑功能的菜单项;3)重用的EXCEL原有的菜单项无需编写代码,直接使用,仅需对报表设计器中新增的功能编写代码; 步骤3):配置数据源;配置报表中需要展示的数据来源,通过在设计器的界面上编辑查询数据库数据的结构化查询语言SQL语句实现,配置好的数据源被暂存在设计器全局变量中; 步骤4):编辑报表格式;包括设置报表表格样式、报表表头文字、报表标题及数据字段,其中数据字段与步骤3)设置的数据源中获取到的数据字段一致; 步骤5):保存报表格式文件; 步骤6):提交报表格式文件至数据库;将报表格式文件保存到数据库中的数据表的相应字段中; 步骤7):在WEB浏览器中预览报表执行结果。
3.根据权利要求2所述的一种基于EXCEL平台构建的WEB报表设计系统的实现方法,其特征在于,所述的步骤5)保存报表格式文件包括以下步骤: (1)创建空白报表文档对象; (2)在报表文档对象中添加报表的各种内容子节点; (3)搜索报表设计器表格,添加报表标题、表头及数据字段集合及其它界面内容至对应的内容子节点; (4)获取设计器全局变量中保存的报表设计结果,添加到报表格式文档对象的相应内容子节点,全局变量中包含报表类型、设计者等信息; (5)保存报表格式文档对象至本地文件。
4.根据权利要求2所述的一种基于EXCEL平台构建的WEB报表设计系统的实现方法,其特征在于,所述步骤7)在WEB浏览器中预览报表执行结果包括如下步骤: a)在浏览器中输入报表访问地址,此地址包括通用报表访问连接加上要访问的报表的ID ; b)在WEB服务器端接收用户请求,并解析出要访问的报表ID; c)根据此报表ID从数据库中读取报表格式文件; d)从格式文件中获取数据源; e)执行数据源,获取报表数据; f)根据报表格式文件中的格式要求及报表数据,创建报表页面; g)发送报表页面至浏览器供用户浏览。
【文档编号】G06F17/24GK104360992SQ201410722884
【公开日】2015年2月18日 申请日期:2014年12月2日 优先权日:2014年12月2日
【发明者】聂作先, 王平阳, 聂明星, 杨海燕, 张顺淼 申请人:福建工程学院