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

技术编号:6142476 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种自定义动态报表系统及其实现方法,自定义动态报表由数据层、业务层、定义层和展现层构成,自定义动态报表的实现过程是:根据报表需求定义报表类型;根据报表类型定义XML配置文件;通过业务层解析XML配置文件得到配置文件信息,同时在系统内存中加载展现层即EXCEL模板文件,以形成普通报表;根据配置文件信息,从数据层获取原始数据并加工成报表数据;将报表数据与展现层即EXCEL模板文件结合后,在系统内存中生成报表;根据配置文件信息对生成的报表进行处置得报表。本发明专利技术能使报表系统的实施和维护成本大幅降低,通过简单的配置即可满足多变的报表需求,制作简单,使用灵活,数据层、业务层、定义层及展现层的相互分离,具有极高的灵活性、易用性和实用性。

【技术实现步骤摘要】

本专利技术涉及一种报表的处理和生成方法,尤其是一种基于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,将步骤10本文档来自技高网...

【技术保护点】
1.一种自定义动态报表系统,其特征在于:由数据层、定义层、业务层和展现层构成,其中:所述数据层为任何能提供报表原始数据的数据源,如数据库,文本文件等,可以是异构的;所述定义层是基于XML的配置文件,由报表宏观定义、报表头定义、报表体定义、报表尾定义四大部分组成,报表宏观定义主要用来定义报表的类型、最终处理方式、打印机名、打印份数、数据源获取方式等;报表头定义、报表体定义、报表尾定义用来定义报表数据具体对应的数据层数据和显示位置、计算公式;所述展现层是基于EXCEL的模板文件,在模板中定义共性的报表元素或者特征,或者由程序根据配置文件生成报表,如报表的风格、描述性文字及其内容、字体、颜色、计算公式等信息;所述业务层具有解析配置文件、加载报表模板、处理报表数据、生成最终报表的功能。

【技术特征摘要】

【专利技术属性】
技术研发人员:彭海波
申请(专利权)人:武钢集团昆明钢铁股份有限公司
类型:发明
国别省市:53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1