一种报表生成方法及装置制造方法

文档序号:6548134阅读:261来源:国知局
一种报表生成方法及装置制造方法
【专利摘要】本发明公开了一种报表生成方法,所述方法包括:根据用户输入的报表生成信息确定报表展现方式和数据处理方式;从数据库中获取需要在报表中展现的数据集,并根据所述数据处理方式处理所述数据集中的每个数据;根据所述报表展现方式生成包含所述处理后的数据的报表。本发明还公开了一种报表生成装置。本发明实现了提高报表生成效率、节省了人力物力的目的。
【专利说明】一种报表生成方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种报表生成方法及装置。
【背景技术】
[0002]对于一个报表生成工具如何生成报表,其过程按先后顺序一般有三步:
[0003]第一步、数据获取:从数据库中初步获取客户需要的数据;
[0004]第二步、数据处理:对从数据库中取出的数据进行整理、归并等处理;
[0005]第三步、数据展现:按客户需求将经处理后的数据输出成特定格式。
[0006]一般在J a V a编程环境下,其开发过程中一般是分块的,也就是说,若客户的需求是开发N个报表,则分为N个块进行开发,即每个开发人员负责开发其中的一块或几块。例如,若客户要求根据业务信息系统中的电子业务数据,进行计算机程序开发,生成N张业务报表,分别记为P 1> P 2、....P N,则开发人员了解客户对报表P I的需求并开发报表P 2,开发人员了解客户对报表P 2的需求并开发报表P 1,……开发人员了解客户对报表P N的需求并开发报表P N。若客户需求发生变化,就需要定位到对应报表的相关代码段,按新逻辑编写代码,重新编译出执行码,而后重新进行应用系统的部署。
[0007]可见,在开发报表生成工具时,不同开发人员间的工作从业务逻辑上看是并行的,但在技术实现层面是存在很大冗余的。比如对于不同报表来讲,查询的数据是不同的,但如何将数据从数据库中取出来,如何整理数据(补位、金额格式化)等等,使用的技术却基本是一样的,而不同的开发人员,都为这一过程开发了代码,这就带来了冗余。同时,在发生维护(需求变更)时,即便是一个微小的改动,比如界面数据项顺序改变,也需要修改代码、编译、打包、部署,这一过程反而会产生较大的增加人力物力成本。

【发明内容】

[0008]有鉴于此,本发明实施例的主要目的在于提供一种报表生成方法及装置,以实现提闻报表生成效率、节省了人力物力的目的。
[0009]为实现上述目的,本发明实施例提供了一种报表生成方法,所述方法包括:
[0010]根据用户输入的报表生成信息确定报表展现方式和数据处理方式;
[0011] 从数据库中获取需要在报表中展现的数据集,并根据所述数据处理方式处理所述数据集中的每个数据;
[0012]根据所述报表展现方式生成包含所述处理后的数据的报表。
[0013]优选地,所述报表生成信息包括反应报表展现样式的第一信息和反应数据处理规则的第二信息,所述根据用户输入的报表描述信息确定报表展现方式和数据处理方式,具体包括:
[0014]根据用户输入的所述第一信息确定报表展现方式;
[0015]根据用户输入的所述第二信息确定数据处理方式。
[0016]优选地,所述第一信息和所述第二信息配置在预先创建的配置文件中。[0017]优选地,所述从数据库中获取需要在报表中展现的数据集,具体包括:
[0018]采用i B a t i S技术从数据库中获取需要在报表中展现的数据集。
[0019]优选地,所述根据所述数据处理方式处理所述数据集中的每个数据,具体包括:
[0020]将所述数据集中的每个数据与所述报表中的相应位置进行关联映射;
[0021]根据所述数据处理方式对所述映射后的每个数据进行加工。
[0022]本发明实施例还提供了一种报表生成装置,所述装置包括:
[0023]方式确定模块,用于根据用户输入的报表生成信息确定报表展现方式和数据处理方式;
[0024]数据获取模块,用于从数据库中获取需要在报表中展现的数据集;
[0025]数据处理模块,用于根据所述数据处理方式处理所述数据集中的每个数据;
[0026]报表生成模块,用于根据所述报表展现方式生成包含所述处理后的数据的报表。
[0027]优选地,所述报表生成信息包括反应报表展现样式的第一信息和反应数据处理规则的第二信息,所述方式确定模块,具体包括:
[0028]第一方式确定子模块,用于根据用户输入的所述第一信息确定报表展现方式;
[0029]第二方式确定子模块,用于根据用户输入的所述第二信息确定数据处理方式。
[0030]优选地,所述第一信息和所述第二信息配置在预先创建的配置文件中。
[0031]优选地,所述数据获取模块,具体用于采用i B a t i S技术从数据库中获取需要在报表中展现的数据集。
[0032]优选地,所述数据处理模块,具体包括:
[0033]数据映射子模块,用于将所述数据集中的每个数据与所述报表中的相应位置进行关联映射;
[0034]数据加工子模块,用于根据所述数据处理方式对所述映射后的每个数据进行加工。
[0035]本发明实施例的提供的报表生成方法及装置,本发明实施例的提供的报表生成方法,根据用户输入的报表生成信息确定报表展现方式和数据处理方式,然后,根据所述数据处理方式处理所述数据集中的每个数据,并根据所述报表展现方式生成包含所述处理后的数据的报表。本发明实施例通过用户输入的报表生成信息便定义了报表的样式和报表中数据的展现形式,在生成不同报表时,可以只修改所述报表生成信息,而不必针对每个报表编辑每个用于生成对应报表的程序,可见,本发明实施例采用统一的报表生成逻辑来生成报表,不但可以大大提高报表的生成效率,还节省了人力物力。
【专利附图】

【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明实施例报表生成方法的流程示意图;
[0038]图2为本发明实施例报表生成方法的另一流程示意图;
[0039]图3为本发明实施例报表生成装置的结构示意图。【具体实施方式】
[0040]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明实施例在于将报表生成这一过程中的前端(数据展现)和后端(数据获取)的业务层面的需求开放,而在中端将技术层面的实现统一化并隐藏,从而达到既支持客户多样化的报表需求,又简化了开发报表生成工具的过程,同时还实现了易于维护报表生成工具的目的。
[0042]在本发明实施例中,假设客户要求根据业务信息系统中的电子业务数据,生成N
张业务报表,分别为业务报表P 1、业务报表P 2、......业务报表P N。但是,在生成各个业
务报表之前,需要进行计算机程序开发,以得到一个“报表自动生成工具”。具体如下:
[0043]首先,采用面向对象的思想,将报表抽象为一个报表对象,并将所述报表对象划分表头、列等子对象,以为所述报表对象定义不同类别的属性。即:根据N张业务报表的需求,定义所有报表可适用的元素和元素的属性,也就是定义一套报表生成信息,举例如下:
[0044]报表描述信息:报表标题、报表报告周期等;
[0045]报表表头信息:表头样式、列标题、列宽等;
[0046]报表数据信息:报表数据在业务数据中的来源,每个数据的处理方式(比如报表和数据集的对应关系、金额单位、文本形式、数据形式比如整数、数据日期等)等。
[0047]以上属性定义过程主要是为了支撑客户对前端报表展现样式的个性化需求,以便最后按照上述属性的实际内容生成报表。
[0048]然后,将上述报表生成信息转化为计算机可识别的用于生成报表的实现规则。
[0049]最后,根据所述实现规则进行软件开发,产物即为“报表自动生成工具(即报表生成装置)”。
[0050]下面根据N张业务报表的需求,向所述报表自动生成工具中分别填写N个业务报表的报表生成信息,并向所述报表自动生成工具中分别加载N个报表所要展不的业务数据,然后运行所述报表自动生成工具,以生成客户所需的N个业务报表。
[0051]以下为利用所述报表自动生成工具生成报表的流程。
[0052]参见图1,为本发明实施例一提供的报表生成方法的流程示意图,该方法具体包括以下步骤:
[0053]步骤101:根据用户输入的报表生成信息确定报表展现方式和数据处理方式。
[0054]在步骤101中,为了生成一个报表,首先向所述报表自动生成工具输入各个报表生成信息,比如,报表标题、表头样式、每个数据的处理方式等,这些报表生成信息可以从预先创建的选项中选取也可以自定义。
[0055]步骤102:从数据库中获取需要在报表中展现的数据集,并根据所述数据处理方式处理所述数据集中的每个数据。
[0056]在步骤102中,由于从数据库中获取的数据形式并非是希望在报表中展现的数据形式,所以需要根据步骤101确定的数据处理方式来处理每个数据。[0057]步骤103:根据所述报表展现方式生成包含所述处理后的数据的报表。
[0058]在本发明实施例中,待步骤102对每个数据进行加工处理后,便可按照步骤101确定的报表展现方式生成报表。
[0059]本发明实施例的提供的报表生成方法,根据用户输入的报表生成信息确定报表展现方式和数据处理方式,然后,根据所述数据处理方式处理所述数据集中的每个数据,并根据所述报表展现方式生成包含所述处理后的数据的报表。本发明实施例通过用户输入的报表生成信息便定义了报表的样式和报表中数据的展现形式,在生成不同报表时,可以只修改所述报表生成信息,而不必针对每个报表编辑每个用于生成对应报表的程序,可见,本发明实施例采用统一的报表生成逻辑来生成报表,不但可以大大提高报表的生成效率,还节省了人力物力。
[0060]参见图2,为本发明实施例二提供的报表生成方法的另一流程示意图,该方法具体包括以下步骤:
[0061]步骤201:由于所述报表生成信息包括反应报表展现样式的第一信息(即所述报表描述信息中的部分或全部信息和所述报表表头信息中的部分或全部信息等等)和反应数据处理规则的第二信息(即所述报表数据信息中的部分或全部信息等等),所以可根据用户输入的所述第一信息确定报表展现方式,并根据用户输入的所述第二信息确定数据处理方式。
[0062]在本发明实施例中,所述第一信息和所述第二信息配置在预先创建的配置文件中。
[0063]在本发明实施例中,主要是在S pring(Sprin g是一个轻量级的J a
V a语言开发框架,用于辅助程序开发)框架基础上进行了报表自动生成工具的程序开发,以将数据的展现和数据集动态关联起来。在S P r i n g中,可以将实现类、参数信息等配置在其对应的配置文件中,那么当需要更改实现类或参数信息时,只需要修改配置文件即可,所以,本发明实施例可以采用S P r i n g的“注入”特点,将表头、列等报表生成信息在配置文件中配置,当报表生成信息发生变化时无需修改配置文件代码,只需修改报表生成信息即可。
[0064]步骤202:采用i B a t i s技术从数据库中获取需要在报表中展现的数据集。
[0065]在步骤202中,可以使用iBatis(iBatis是基于J a v a的持久层框架,辅助进行数据库访问操作)框架对数据库的数据访问过程进行规范,这样即可确定使用何种技术查询报表的原始数据以及查询结果的数据集形式,这一过程主要是支持后端对数据访问的需求。
[0066]步骤203:将所述数据集中的每个数据与所述报表中的相应位置进行关联映射;根据所述数据处理方式对所述映射后的每个数据进行加工。
[0067]在步骤203中,将利用i B a t i s技术查询出的数据集打散,然后将数据集与报表之间建立起对应关系,可以理解为将数据填充到报表对象中,之后对每个数据进行整理,比如金额数据的格式化,空数据的填充等。
[0068]步骤204:根据所述报表展现方式生成包含所述处理后的数据的报表。
[0069]在本发明实施例中,由于采取了灵活的数据映射,并将数据的加工整理和数据展现都采用统一逻辑进行了封装,开发人员只用关心如何从数据库中获取原始数据,以及如何配置报表生成信息,从而简化了报表生成工具的开发流程和工作量;在客户对报表需求发生变更时,可以仅通过修改报表生成信息便可改变报表生成样式,这样大大提成报表自动生成工具的利用效率。
[0070]参见图3,为本发明实施例三提供的报表生成装置的结构示意图,该装置具体包括:
[0071]方式确定模块301,用于根据用户输入的报表生成信息确定报表展现方式和数据处理方式;
[0072]数据获取模块302,用于从数据库中获取需要在报表中展现的数据集;
[0073]数据处理模块303,用于根据所述数据处理方式处理所述数据集中的每个数据;
[0074]报表生成模块304,用于根据所述报表展现方式生成包含所述处理后的数据的报表。
[0075]其中,所述报表生成信息包括反应报表展现样式的第一信息和反应数据处理规则的第二信息,所述方式确定模块,具体包括:
[0076]第一方式确定子模块,用于根据用户输入的所述第一信息确定报表展现方式;
[0077]第二方式确定子模块,用于根据用户输入的所述第二信息确定数据处理方式。
[0078]其中,所述第一信息和所述第二信息配置在预先创建的配置文件中。
[0079]其中,所述数据获取模块,具体用于采用i B a t i S技术从数据库中获取需要在报表中展现的数据集。
[0080]其中,所述数据处理模块,具体包括:
[0081]数据映射子模块,用于将所述数据集中的每个数据与所述报表中的相应位置进行关联映射;
[0082]数据加工子模块,用于根据所述数据处理方式对所述映射后的每个数据进行加工。
[0083]本发明实施例的提供的报表生成装置,本发明实施例的提供的报表生成方法,根据用户输入的报表生成信息确定报表展现方式和数据处理方式,然后,根据所述数据处理方式处理所述数据集中的每个数据,并根据所述报表展现方式生成包含所述处理后的数据的报表。本发明实施例通过用户输入的报表生成信息便定义了报表的样式和报表中数据的展现形式,在生成不同报表时,可以只修改所述报表生成信息,而不必针对每个报表编辑每个用于生成对应报表的程序,可见,本发明实施例采用统一的报表生成逻辑来生成报表,不但可以大大提高报表的生成效率,还节省了人力物力。
[0084]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM / R AM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0085]需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0086]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0087]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制 于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种报表生成方法,其特征在于,所述方法包括: 根据用户输入的报表生成信息确定报表展现方式和数据处理方式; 从数据库中获取需要在报表中展现的数据集,并根据所述数据处理方式处理所述数据集中的每个数据; 根据所述报表展现方式生成包含所述处理后的数据的报表。
2.根据权利要求1所述的方法,其特征在于,所述报表生成信息包括反应报表展现样式的第一信息和反应数据处理规则的第二信息,所述根据用户输入的报表描述信息确定报表展现方式和数据处理方式,具体包括: 根据用户输入的所述第一信息确定报表展现方式; 根据用户输入的所述第二信息确定数据处理方式。
3.根据权利要求2所述的方法,其特征在于,所述第一信息和所述第二信息配置在预先创建的配置文件中。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述从数据库中获取需要在报表中展现的数据集,具体包括: 采用i B a t i s技术从数据库中获取需要在报表中展现的数据集。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述数据处理方式处理所述数据集中的每个数据,具体包括: 将所述数据集中的每个数据与所述报表中的相应位置进行关联映射; 根据所述数据处理方式对所述映射后的每个数据进行加工。
6.一种报表生成装置,其特征在于,所述装置包括: 方式确定模块,用于根据用户输入的报表生成信息确定报表展现方式和数据处理方式; 数据获取模块,用于从数据库中获取需要在报表中展现的数据集; 数据处理模块,用于根据所述数据处理方式处理所述数据集中的每个数据; 报表生成模块,用于根据所述报表展现方式生成包含所述处理后的数据的报表。
7.根据权利要求6所述的装置,其特征在于,所述报表生成信息包括反应报表展现样式的第一信息和反应数据处理规则的第二信息,所述方式确定模块,具体包括: 第一方式确定子模块,用于根据用户输入的所述第一信息确定报表展现方式; 第二方式确定子模块,用于根据用户输入的所述第二信息确定数据处理方式。
8.根据权利要求7所述的装置,其特征在于,所述第一信息和所述第二信息配置在预先创建的配置文件中。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述数据获取模块,具体用于采用i B a t i s技术从数据库中获取需要在报表中展现的数据集。
10.根据权利要求6至8任一项所述的装置,其特征在于,所述数据处理模块,具体包括: 数据映射子模块,用于将所述数据集中的每个数据与所述报表中的相应位置进行关联映射; 数据加工子模块,用于根据所述数据处理方式对所述映射后的每个数据进行加工。
【文档编号】G06F9/44GK103984557SQ201410236349
【公开日】2014年8月13日 申请日期:2014年5月29日 优先权日:2014年5月29日
【发明者】王一甲 申请人:中国银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1