自定义动态报表系统及其实现方法

文档序号:6358130阅读:306来源:国知局
专利名称:自定义动态报表系统及其实现方法
技术领域
本发明涉及一种报表的处理和生成方法,尤其是一种基于XML和EXCEL的自定义动态报表系统及其实现方法。
背景技术
报表主要用来展现一些综合数据,之前均以人工填写方式完成,不仅工作效率低下,劳动强度大,而且出错率较高。随着计算机技术的发展,在目前的实际应用中,有的企业购买专门的报表软件来完成报表填报,有的企业则在计算机程序语言中硬编码绘制。这些方法在实施成本、维护成本及灵活性等方面都存在这样或那样的不足,尤其当用户报表需求变化时,往往要等待开发人员来修改报表,甚至要重新开发新程序后才能实现,这往往满足不了报表需经常变化的实时性要求,即使勉强满足,也会让开发维护人员疲于奔命,增大实施和后期维护成本。而对于已出现的部分应用EXCEL做介质的报表处理技术,除了在灵活性及可配置性方面有欠缺外,只能在Windows系统上实现,而在Linux或者Unix等系统上就无能为力了。

发明内容
有鉴于此,为克服现有技术的不足,本发明提供一种以低成本、易用性、可配置、自定义为目的的动态报表系统及其实现方法,以满足用户多变的需求。本发明利用XML系统具有的自定义性、可扩展性等优势,来表达各种类型报表的数据乃至报表格式,并作为报表数据和格式的定义语言;同时利用目前市场上用途最广,使用人数最多的电子表格系统——EXCEL,并借助其强大的展现和数据处理功能,方便处理复杂的中国式报表,并且方便用户根据需求自己编辑,自行定义所需报表,实现所见即所得的功能,故用其来定义报表模板。本发明提供的是这样一种自定义动态报表系统,其特征在于由数据层、定义层、 业务层和展现层构成,其中
所述数据层为任何能提供报表原始数据的数据源,如数据库,文本文件等,可以是异构
的;
所述定义层是基于XML的配置文件,由报表宏观定义、报表头定义、报表体定义、报表尾定义四大部分组成,报表宏观定义主要用来定义报表的类型、最终处理方式、打印机名、 打印份数、数据源获取方式等;报表头定义、报表体定义、报表尾定义用来定义报表数据具体对应的数据层数据和显示位置、计算公式;
所述展现层是基于EXCEL的模板文件,在模板中定义共性的报表元素或者特征,或者由程序根据配置文件生成报表,如报表的风格、描述性文字及其内容、字体、颜色、计算公式等信 息;所述业务层具有解析配置文件、加载报表模板、处理报表数据、生成最终报表的功能。本发明提供的是这样一种自定义动态报表的实现方法,包含下列步骤
(1)根据报表需求定义报表类型;
(2)根据步骤(1)的报表类型定义XML配置文件;
(3)通过业务层解析XML配置文件得到配置文件信息,同时在系统内存中加载展现层即EXCEL模板文件,以形成普通报表;
(4)根据步骤(3)得到的配置文件信息,从数据层获取原始数据并加工成报表数据;
(5)将步骤(4)加工的报表数据与步骤(3)加载的展现层即EXCEL模板文件结合后,在系统内存中生成报表;
(6)根据步骤(3)得到的配置文件信息对步骤(5)生成的报表进行处置,如打开或下载保存或直接打印出报表。所述步骤(1)报表类型的确定是依据报表头、报表体、报表尾的特征按下列划分的
I类报表表中的行、列数据格式均固定不变,报表数据以填充单元格形式提供; II类报表报表头和报表尾格式固定,报表体的列格式及其中的数值类型、数量、描述固定,而行格式及其中的数据为动态可变;
III类型报表报表头和报表尾格式固定,表中的行、列格式及其中的数值类型、数量、 描述为动态可变。由于XML和EXCEL均为普通的文本文件,用跨平台语言JAVA实现核心业务层的功能,那么业务层作为服务端的部署就可以为Windows、Linux、Unix等各种平台。本发明的自定义动态报表系统及其实现方法,既可应用于C/S系统,也可应用于 B/S系统。本发明的自定义动态报表系统及其实现方法,充分结合了 XML和EXCEL各自的长处,通过将数据层、业务层、定义层及展现层分离,完全实现了自定义动态报表的生成。本发明具有下列优点和效果采用上述方案,能够满足多变的报表需求,制作简单,使用灵活,数据层、业务层、定义层及展现层的相互分离,使得用户只要会使用EXCEL就可自己调整和定义,实现所见即所得的功能,同时能使报表系统的实施和维护成本大幅降低,通过简单的配置即可自定义动态生成报表,服务端的部署可以在Linux或者Unix等系统上完成,具有极高的灵活性、易用性和实用性。


图1为本发明自定义动态报表的生成流程图; 图2为本发明自定义动态报表系统关系图3为实施例EXCEL模板文件示例图; 图4为实施例XML配置文件示例图5为利用本发明制作的另外一种报表类型的EXCEL模板文件图; 图6为利用本发明制作的对应图5模板的实际EXCEL报表效果图。
具体实施例方式下面通过具体实施例对本发明做进一步说明。 实施例以自定义带条形码打印的标牌报表的实现过程作为本实施例。如图1所示
101,根据报表需求定义报表类型如图3所示,该标牌报表是一种钢材产品标牌,报表显示的行、列格式固定,需要打印二维条码,数据来源于数据库,但标签打印纸的高度、长度、报表元素等格式为动态可变,需要根据生产情况和标签纸消耗实际情况决定,因此,根据报表需求将带条形码打印的标牌报表定义为I类型; 102,根据步骤101的I类报表类型定义XML配置文件
第一步在计算机硬盘指定路径下新建以该报表名字命名的文件夹为“热轧钢带大牌”; 第二步在“热轧钢带大牌”文件夹下新建一个EXCEL文件,命名为“热轧钢带大牌.xls”,内容包含品名,标准,级别,重量,规格,钢种,检验员,日期班别,二维条码控件等, 建立后的模板文件如附图3所示,其中的文字描述最好与生产实际的相似,能让人一目了然,而二维条码控件则是EXCEL自带的ActiveX控件,值指向单元格A7 ;
第三步在“热轧钢带大牌”文件夹下新建一个XML文件,命名为“Declare, xml”,建立后的配置文件如附图4所示,包含报表宏观定义,报表头定义,报表体定义,报表尾定义四大定义部分;其中报表宏观定义中定义了报表的类型为I,报表的处理方式为直接打印,打印机名为K28,打印数量为2,由于默认的数据来源于数据库,所以本实施例省略了数据源方面的定义;由于此报表可以看作II类型的特殊形式即只有报表头的报表,因而也只对报表头进行了定义,如附图4所示,‘FS_PRINTMATERIAL’这一数据字段对应附图3所示的‘热轧钢带大牌’所在单元格,即行索引为2,列索引为B,其他字段定义依此类推;
103,通过业务层解析XML配置文件,得到“Declare, xml ”配置文件信息,同时“热轧钢带大牌.xls”模板文件加载至计算机内存中,以形成普通报表;
104,根据步骤103得到的配置文件信息,从数据层获取原始数据并加工成报表数据本步骤中,系统根据“Declare, xml”配置文件首先从数据库中找到原始数据FS_ PRINTMATERIAL, FS_STANDARD等数据并进行处理,如是否求和、求平均值、小数位数处理等, 本实施例中的IsSum=”0”表示不需要进行求和计算,其实际操作中,大多数公式可以在 EXCEL模板中直接进行定义,并不需要报表系统解析公式后再单独处理,"Declare, xml,,配置文件中的公式定义功能是在比较复杂的情况、EXCEL模板很难定义的情况下才使用;
105,将步骤104加工的报表数据与步骤(3)加载的展现层即EXCEL模板文件结合后, 在系统内存中生成报表本步骤中,报表系统会将步骤104中处理好的报表数据依据配置文件定义信息填充到EXCEL模板对应位置,如“品名”对应的数据源FS_PRINTMATERIAL输出到第2行的B列,生成后的报表驻留在内存当中;
106,根据步骤103得到的配置文件信息对步骤105生成的报表进行处置后,打开或下载保存或直接打印出报表本步骤中,报表系统会根据“Declare, xml”配置文件的配置信息处置驻留在内存中的报表,处置完成后将EXCEL报表模板、XML定义文件、报表对象注销, 释放内存资源,在本实施例中,将调用名为“K28”的打印机进行打印,打印数量为2。
至此,一个实施例完成。当最终用户发现标牌报表不满足需求时(如标牌样式、大小、字段等变化),可以自行调整“冷轧钢板大牌.xls”模板文件并进行测试;甚至当数据字段发生改变时,用户也可直接对“Declare, xml”定义文件进行修改,而不需要交给报表开发人员重新开发修改。为了更加突出介绍本发明的意义,图5和图6还给出了另外一种报表类型为II的实例,具体实施方式
与上述介绍类似,不再进行详细说明。本领域普通技术人员可以在理解上述发明内容的基础上,对本发明进行各种扩展、变化和改进。凡采用等同替换或等效变换所获得的技术方案,均落在本发明的保护范围之内。
权利要求
1.一种自定义动态报表系统,其特征在于由数据层、定义层、业务层和展现层构成, 其中所述数据层为任何能提供报表原始数据的数据源,如数据库,文本文件等,可以是异构的;所述定义层是基于XML的配置文件,由报表宏观定义、报表头定义、报表体定义、报表尾定义四大部分组成,报表宏观定义主要用来定义报表的类型、最终处理方式、打印机名、 打印份数、数据源获取方式等;报表头定义、报表体定义、报表尾定义用来定义报表数据具体对应的数据层数据和显示位置、计算公式;所述展现层是基于EXCEL的模板文件,在模板中定义共性的报表元素或者特征,或者由程序根据配置文件生成报表,如报表的风格、描述性文字及其内容、字体、颜色、计算公式 信息;所述业务层具有解析配置文件、加载报表模板、处理报表数据、生成最终报表的功能。
2.一种自定义动态报表的实现方法,其特征在于包含下列步骤(1)根据报表需求定义报表类型;(2)根据步骤(1)的报表类型定义XML配置文件;(3)通过业务层解析XML配置文件得到配置文件信息,同时在系统内存中加载展现层即EXCEL模板文件,以形成普通报表;(4)根据步骤(3)得到的配置文件信息,从数据层获取原始数据并加工成报表数据;(5)将步骤(4)加工的报表数据与步骤(3)加载的展现层即EXCEL模板文件结合后,在系统内存中生成报表;(6)根据步骤(3)得到的配置文件信息对步骤(5)生成的报表进行处置,如打开或下载保存或直接打印出报表。
3.如权利要求2所述的自定义动态报表的实现方法,其特征在于所述步骤(1)报表类型的确定是依据报表头、报表体、报表尾的特征按下列划分的I类报表表中的行、列数据格式均固定不变,报表数据以填充单元格形式提供;II类报表报表头和报表尾格式固定,报表体的列格式及其中的数值类型、数量、描述固定,而行格式及其中的数据为动态可变;III类型报表报表头和报表尾格式固定,表中的行、列格式及其中的数值类型、数量、 描述为动态可变。
全文摘要
本发明涉及一种自定义动态报表系统及其实现方法,自定义动态报表由数据层、业务层、定义层和展现层构成,自定义动态报表的实现过程是根据报表需求定义报表类型;根据报表类型定义XML配置文件;通过业务层解析XML配置文件得到配置文件信息,同时在系统内存中加载展现层即EXCEL模板文件,以形成普通报表;根据配置文件信息,从数据层获取原始数据并加工成报表数据;将报表数据与展现层即EXCEL模板文件结合后,在系统内存中生成报表;根据配置文件信息对生成的报表进行处置得报表。本发明能使报表系统的实施和维护成本大幅降低,通过简单的配置即可满足多变的报表需求,制作简单,使用灵活,数据层、业务层、定义层及展现层的相互分离,具有极高的灵活性、易用性和实用性。
文档编号G06F17/30GK102156741SQ201110095328
公开日2011年8月17日 申请日期2011年4月16日 优先权日2011年4月16日
发明者彭海波 申请人:武钢集团昆明钢铁股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1