一种JSP框架下基于XML的Web数据报表生成方法
【技术领域】
[0001]本发明涉及一种JSP框架下基于XML的Web数据报表生成方法,特别涉及的是基于JSPT框架下XML语言中的数据报表动态生成的方法。
【背景技术】
[0002]在开发商业智能处理系统时,除了要能提供各种分析优化决策树等方法和工具来辅助各项管理决策外,还需有完整的包含有数据库连接报表设计数据处理预览打印等功能的报表解决方案,而当前众多的处理系统中往往忽略了后一部分须妇,一个完整的商业智能处理系统中一个很重要的部分就是如何利用系统的数
据来定义编制出各种类型样式的报表本文介绍的报表解决方案是.NET框架下,基于XML,在网上远程提供对图表(2D 3D)交叉表多维分析立方体等多种样式的支持,从而较好地解决了连接数据库进行数据处理报表设诛打印等问题。
[0003]
【发明内容】
[0004]一种JSP框架下基于XML的Web数据报表生成方法:主要由四个部分组成;
1.首先是报表的引擎架构;其整个报表引擎可分为两部分:报表设计部分和报表显示部分报表设计部分(Design, time)是传统的Windows应用程序,能让用户设计和制作一张所需要的报表,包括选择数据源,设计报表样式,设计图表等报表显示部分(Run — time)则是Web应用程序,可以得到最终数据填入后形成的报表,并可打印报表引擎的核心采用了基于XML的架构,当在Design — time设计完一张报表后,实际上引擎生成了一个描述这张报表信息的XML文件口当用户观看报表时,Run—t ime取出这张报表的XML文件进行解析,读取报表的信息;然后从数据库读取这张报表所需要的数据,生成数据XML文件;由报表的样式生成样式XML文件;最后将这两个XML文件进行组合,形成一张最终的报表.2.报表引擎设计中涉及的组件;由于是基于JSP框架下的报表,所以必须需要其JSP组件,则其组件构成分为;
(I)JSP Framework组件,设计是建立在.NET平台之上的JSP Framework是.NET平台的程序设计模型,用于构建和运行应用程序和XML web services这些组件使用标准的独立于平台的协议(如XML SDAP和HTTP).NET Framework由两个主要部分组成:公共语言运行库和一个统一的类库集,包括用于Web应用程序和XML Web services的ASP.NETE酣,用于智能客户端应用程序的Windows窗体,和用于松稱合数据访问的AD0.NET.(2).XML组件;整个Report引擎的核心是基于XML的。
[0005]XML是一种描述型的标记语言。其优点是既可以在这个文本文件中存储结构化数据,也可以在其中存储非结构化数据H——也就是说,它能包含和描述“粗糙的”文档数据,就如它描述“规则的”表格数据一样。报表的所有信息都储存在XML文档中,供生成报表时解析. (3).0fice WebComponent组件;报表引擎中的图表控件,是采用Microsoft Oficeweb Component来实现的。Microsoft Ofice Web Component是用于向Web页添加电子表格、图表和数据处理功能的ActiveX控件的集合。
[0006]由于OficeWebComponent是完全可编程的,因而在很多设计环境中都可使用这些组件来建立复杂的、交互的和基于Web的解决方案。共有三种Ofice Web Component ;Spreadsheet组件、Chart组件和PivotTable组件。本文的图表控件使用的是Chart组件。Chart组件放置在用户窗体上以后,若无法在设计时添加数据,只需右键单击Chart组件,然后单击快捷菜单中的“属性工具箱”命令,即可以对Chart组件的格式进行局部修改。Chart组件在用户窗体中应用后,所有的数据和大部分的格式属性都必须通过编程设置。在运行时,使用SetData方法来真正将数据写入Chart组件。
[0007](4).ActiveX组件;在实现报表引擎的打印功能时,为了让每个可以浏览到报表的客户端都能打印报表,就需用程序通过网页去修改客户端的注册表,这样使用了 ActiveX组件技术。
[0008]ActiveX控件与JAVA的小应用程序在表面上很类似,都能让网络开发商在他们的网址上放置一些小的应用程序,但实际上ActiveX控件与JAVA小应用程序有着完全不同的内涵。ActiveX控件和其他类型的应用程序的唯一区别就在于=ActiveX控件不能依赖于它本身而存在。也就是说,ActiveX控件不能像其他应用程序一样直接运行,它必须作为应用程序的一部分,比如作为Web页或者是其他类型的ActiveX的载体程序的一部分。其实,ActiveX控件的主要特征之一,是它可以方便地加入到支持C0M(组件对象模型,ComponentObjectModel)的应用程序中。ActiveX控件实际上是在OLE控件的基础上附加一些功能而形成的。同OLE—样,ActiveX控件同样描述那些能在应用程序中共享的部分。与OLE不同的是,ActiveX控件能在Internet上共享。另外,ActiveX能够在网络环境中支持OLE特性。也就是说,一旦OLE把应用程序装入系统来共享组件,那么ActiveX就可以让应用程序在Internet上共享组件。Interact的开发商仍可以在他们的Web页上加入ActiveX控件。如果控件已在用户系统中注册,它就会自动地作为网页的一部分显示在用户的Web浏览器上。如果网页上的ActiveX控件没有在系统上注册,该控件就会自动下载到用户的计算机上,自动注册并自动显示在网页上。在这方面,ActiveX控件很像JAVA应用程序,他们都能为网页提供编程内容。ActiveX控件和JAVA应用程序都能被用做嵌入网页的小应用程序。网页不再被限定为静态的内容。因此采用ActiveX技术,我们可以通过网页修改客户端的注册表。
[0009]3.从数据库中读取数据并转换成特定格式XML文档的算法;由于从数据库中读出的数据是存在一个Data Table对象中的,而报表引擎需要的是一个按分组对应的树结构状XML对象,因此需要一个算法来实现这一转换。因为分组情况是不定的,总数也可变化,因此我们通过一个递归函数Find Node来实现寻找一条数据对应树上点位置的功能。当所有的数据都填入对应的树结点中后,整个转换也就完成了。下面就是这个算法的结构:
public XmlNode FindNode(XmlNode root, DataRow dr, int groupindex)
(if(groupindex==this._alGroup.Count)return root ;
string groupname:this._alGroup[groupindex].ToStringO ;string groupvalue=,:try (
groupvalue=dr[groupname].ToStringO ;)catch {)
foreach(XmlNode xn in root.ChildNodes)
(if(groupvalue==XMLTools.FindAttribute (xn, DataXMLConst.da_Group_GroupValue))
{return FindNode(xn, dr,++groupindex);
}}
XmlNode node=XMLTools.AddXmlChild(root, groupname);
XMLTools.AddAttribute(node,DataXMLConst.da_Group_GroupValue,groupvalue);return FindNode(node, dr,++groupindex);
4.报表引擎的使用过程;首先在报表项目中新建一张报表。其页面分为两部分,占大部分的左边是具体制作报表的区域,而右边是一个解决方案浏览器(Solut1n Explorer),类似于Visual Stud1.NET,列出了当前解决方案里的所有项目,及项目中的所有文件,供用户选择,编辑。报表分为以下几个部分:
报表头(Report Header):报表的开始部分;
页眉(Page Header):报表每页的页眉:
报表内容(Details):报表的详细内容,例如数据表格等:
报表尾(Report Footer):报表的结尾部分;
页脚(Page Footer):报表每页的页脚。
[0010]向设计区域添加报表的控件时,只需简单地从工具箱(ToolBox)里拖动想要的控件到指定的位置就可
以了。可供报表选择的控件有以下几种:
线(Line):报表中的线条,可单独存在,也可组成表格;
静态文本(ConstText):报表中固定不变的文字,如报表标题等;
图片(Image):报表中的图片,如报表上公司商标、Logo等;
统计项(Aggregat1n):报表中的统计值,如总数,总和,平均值等:
图表(Chart):报表中的图表,比如柱状图,饼图等,由实际数值生成。
[0011]每个控件都可以指定它的属性(Property),比如文本可以设定它的位置、大小、字体、颜色、样式等。
[0012]图表设置与Office中图表的设置非常相似。先选择图表的种类,Office支持的图表在这个报表引擎中几乎都支持,如柱状图(Column),条状图(Bar),线图(Line),饼图(Pie),块状图(Area)等。整张报表完成之后,经编译就可以在浏览器上看报表结果了。
【主权项】
1.一种JSP框架下基于XML的Web数据报表生成方法:该方法主要是利用JSP框架下基于XML及利用OFFICE组件及其ACTIVEX控件。
2.根据权利要求1的JSP框架下基于XML的Web数据报表生成方法,此方法主要分为四部分:引擎架构、引擎设计中涉及的组件、从数据库中读取数据并转换成特定格式XML文档的算法、报表引擎的使用过程。
3.根据权利索要求2的方法主要部分中的引擎架构;其特征为:报表设计部分和报表显示部分;a.报表设计部分(Design, time)是传统的Windows应用程序,能让用户设计和制作一张所需要的报表,包括选择数据源,设计报表样式,设计图表;b.报表显示部分(Run-time)则是Web应用程序,可以得到最终数据填入后形成的报表,并可打印。
4.根据权利索要求2的方法主要部分中的引擎设计中涉及的组件;其特征为:包含.NET Framework、XML、office Web Component、ActiveX 组件。
5.根据权利索要求4的方法设计是建立在.NET平台之上的.NETFramework是.NET平台的程序设计模型,用于构建和运行应用程序和XML web services这些组件使用标准的独立于平台的协议(如XML SDAP和HTTP); 根据权利索要求4的方法设计是建立XML是一种描述型的标记语言。
6.报表的所有信息都储存在XML文档中,供生成报表时解。
7.根据权利索要求4 的方法设计是 Office Web Component, Microsoft Office WebComponent是用于向Web页添加电子表格、图表和数据处理功能的ActiveX控件的集合。
8.根据权利索要求4的方法设计ActiveX控件的主要特征之一,是它可以方便地加入到支持COM(组件对象模型,Component Object Model)的应用程序中。
9.根据权利索要求2的方法主要部分中的从数据库中读取数据并转换成特定格式XML文档的算法。
10.根据权利索要求2的方法设计是根据最终的要求生成WEB报表。
【专利摘要】一种JSP框架下基于XML的Web数据报表生成方法:基于XML的通用的报表引擎,可用在因特网环境中远程生成各式各样灵活的、专业的企业报表,整个报表引擎也是数据库系统的一个关键部分。阐述了报表引擎的开发过程与使用的技术,如.NETFramework、XML、OfficeWebComponent、ActiveX,ApacheTomcat等,并展示了报表引擎的使用过程,从中可以看出该引擎的强大功能。
【IPC分类】G06F9-44, G06F17-30
【公开号】CN104572698
【申请号】CN201310489830
【发明人】不公告发明人
【申请人】镇江鼎拓科技信息有限公司
【公开日】2015年4月29日
【申请日】2013年10月18日