[发明专利]一种基于XML技术的通用报表生成方法及系统在审
申请号: | 201410411380.8 | 申请日: | 2014-08-20 |
公开(公告)号: | CN104216952A | 公开(公告)日: | 2014-12-17 |
发明(设计)人: | 刘代雄 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/21 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 xml 技术 通用报表 生成 方法 系统 | ||
技术领域
本发明涉及网络管理技术领域,具体涉及网络管理系统中基于XML技术的通用报表生成方法及系统。
背景技术
随着通信技术的发展,业务数据种类越来越丰富,用户经常需要将各种业务数据导出为不同格式的报表,例如CSV(Comma Separated Values,逗号分隔值文件格式)、HTML(Hyper Text Markup language,超级文本标记语言)和EXCEL(电子表格);报表功能已经成为网络管理软件不可或缺主要功能之一。
现有的网络管理软件生成报表的方法一般为以下2种:
(1)针对每一种数据类型编写个对应报表格式的模板,模板中包含用于替换数据的符号;编写转换函数,将模板中的符号通过转换函数替换为实际数据。
(2)将数据填入某种带有报表功能的控件,利用该控件自带的报表导出功能导出报表。
但是,上述2种方法生成报表时,分别存在以下缺陷:
1、通过方法(1)生成报表时,当导出的报表格式发生变化时,需要修改模板文档和代码,操作过程比较复杂,维护性较差。
2、通过方法(2)生成报表时,必需依赖带有报表功能的控件,无法通用和扩展,其适用范围比较单一。
3、方法(1)针对数据类型编写特定的模板,方法(2)带有报表功能的控件导出报表的格式固定,方法(1)和方法(2)导出报表的内容和格式均固定化,不便于用户使用。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于XML技术的通用报表生成方法及系统,能够支持自定义的报表样式,不仅比较灵活,便于用户使用,而且当导出的报表格式发生变化时,只需修改或者增加XSL数据即可适应,操作过程比较简单,便于维护。
为达到以上目的,本发明采取的技术方案是:一种基于XML技术的通用报表生成方法,包括以下步骤:
A、约定通用的报表数据接口,通过报表数据接口导出原始数据,所有原始数据包括表头部分和数据部分,表头部分和数据部分均包括每一行的数据和每一列的数据;初始化报表数据接口,获取配置数据;
B、遍历所有的原始数据,生成XML数据;判断是否需要装载用户自定义XSL模板,若是,转到步骤C,否则转到步骤D;
C、解析用户自定义XSL模板文件,生成XSL数据,转到步骤E;
D、解析原始数据的表头部分和数据部分,生成XSL数据,转到步骤E;
E、将XML数据通过XSL数据转换成报表文件。
在上述技术方案的基础上,步骤A中所述配置数据包括用户自定义模板和数据条目。
在上述技术方案的基础上,步骤B中所述遍历所有的原始数据的顺序为先行后列。
在上述技术方案的基础上,步骤C中所述解析用户自定义XSL模板文件包括以下步骤:获取当前模板文件对应导出的报表格式类型、以及当前模板能够使用的数据类型,根据当前模板文件的报表格式类型和数据生成XSL数据。
在上述技术方案的基础上,步骤D中所述解析原始数据的表头部分和数据部分,生成XSL数据包括以下步骤:
D1、遍历原始数据表头部分的每一列数据、并写入XSL文件;
D2、判断是否需要生成CSV格式的报表,若是,直接根据原始数据的数据部分生成XSL数据,转到步骤E,否则根据原始数据的数据部分,形成若干矩形区域,转到步骤D4;
D4、选取一个最小的矩形区域;
D5、扫描当前矩形区域,选取当前矩形区域中未扫描的一行数据;遍历当前行数据的所有列,判断当前行所有列是否有合并,若是,针对不同的报表格式,在XSL文件中写入不同的单元格合并信息,否则通过XSL语法取到与当前行所有列的数据对应的报表数据、并写入XSL文件;将合并的行起始值、列起始值和数目记录在合并信息表中、并标记为已扫描;
D6、重复执行步骤D5,直至当前矩形区域中的所有数据遍历完成;
D7、重复执行步骤D4~D6,直至所有原始数据遍历完成,生成所有原始数据的XSL数据,转到步骤E。
在上述技术方案的基础上,步骤D2中每个矩形区域中第一行的单元与上个矩形区域倒数第一行的单元未合并,倒数第一行的单元和下个矩形区域第一行的单元未合并;矩形块的第一行和最后一行之间可以有任意行、列合并。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410411380.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种工业用冷却水除藻剂的配制方法
- 下一篇:纺织车间的远程控制除尘系统