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

文档序号:10535084阅读:195来源:国知局
一种报表生成方法及装置的制造方法
【专利摘要】本发明实施例公开了一种报表生成方法和装置,实现了报表定制化的需求。其中,所述方法包括:预先建立配置文件,所述配置文件中包括报表的表头名称以及表头格式参数,所述表头格式参数是指与所述表头名称对应的表格的格式参数;读取所述配置文件,根据所述报表的表头名称以及表头格式参数生成所述报表的表头;从数据库中获取与所述表头名称对应的数据,以生成所述报表。
【专利说明】
_种报表生成方法及装置
技术领域
[0001] 本发明涉及数据库应用开发领域,尤其涉及一种报表生成方法及装置。
【背景技术】
[0002] 在数据库应用开发中,通常需要将数据库表中数据依照预先设置的规则的转化为 特定的文件格式,以满足对数据进一步格式化处理、分析、共享的需求。常见的特定文件格 式为Excel格式,即将数据库中的数据转换为以Excel格式承载的报表。由于现有技术中报 表的格式固定,不利于对数据库中多样化数据的呈现和处理,若要修改原有报表格式或增 添新的报表格式,就需要对生成报表的代码进行修改,或开发新的报表代码,因而目前亟待 出现一种能够实现定制化的报表生成方法,以满足多样化数据的呈现。

【发明内容】

[0003] 为了解决现有技术中存在的技术问题,本发明提供了一种报表生成方法,实现了 报表定制化的需求。
[0004] 本发明实施例提供了一种报表生成方法,所述方法包括:
[0005] 预先建立配置文件,所述配置文件中包括报表的表头名称以及表头格式参数,所 述表头格式参数是指与所述表头名称对应的表格的格式参数;
[0006] 读取所述配置文件,根据所述报表的表头名称以及表头格式参数生成所述报表的 表头;
[0007] 从数据库中获取与所述表头名称对应的数据,以生成所述报表。
[0008] 优选的,所述表头格式参数中包括表格的起始行、起始列、结束行和结束列,所述 根据所述报表的表头名称以及表头格式参数生成所述报表的表头包括:
[0009] 根据表格的起始行、起始列、结束行和结束列对对应的表格进行合并,并将对应的 表头名称填充至所述合并后的表格中,以生成所述报表的表头。
[0010] 优选的,所述配置文件中还包括与所述表头名称分别对应的SQL语句,所述SQL语 句用于在数据库中查询与所述表头名称对应的数据;
[0011] 所述从数据库中获取与所述表头名称对应的数据,以生成所述报表包括:
[0012] 读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述 报表。
[0013] 优选的,所述表头名称为报表拆分依据,对应的数据为报表拆分数据;
[0014] 所述读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成 所述报表包括:
[0015] 读取所述报表拆分依据的SQL语句,从所述数据库中获取与所述报表拆分依据的 SQL语句对应的报表拆分数据;
[0016] 分别生成与每个所述报表拆分数据对应的分报表。
[0017] 本发明实施例提供了 一种报表生成装置,所述装置包括:配置文件建立单元、表头 生成单元和数据获取单元;
[0018] 所述配置文件建立单元,用于预先建立配置文件,所述配置文件中包括报表的表 头名称以及表头格式参数,所述表头格式参数是指与所述表头名称对应的表格的格式参 数;
[0019] 所述表头生成单元,用于读取所述配置文件,根据所述报表的表头名称以及表头 格式参数生成所述报表的表头;
[0020] 所述数据获取单元,用于从数据库中获取与所述表头名称对应的数据,以生成所 述报表。
[0021 ]优选的,所述表头格式参数中包括表格的起始行、起始列、结束行和结束列;
[0022]所述表头生成单元,具体用于:
[0023]根据表格的起始行、起始列、结束行和结束列对对应的表格进行合并,并将对应的 表头名称填充至所述合并后的表格中,以生成所述报表的表头。
[0024]优选的,所述配置文件中还包括与所述表头名称分别对应的SQL语句,所述SQL语 句用于在数据库中查询与所述表头名称对应的数据;
[0025]所述数据获取单元,具体用于:
[0026]读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述 报表。
[0027]优选的,所述表头名称为报表拆分依据,对应的数据为报表拆分数据;
[0028]所述数据获取单元,具体用于:
[0029]读取所述报表拆分依据的SQL语句,从所述数据库中获取与所述报表拆分依据的 SQL语句对应的报表拆分数据,分别生成与每个所述报表拆分数据对应的分报表。
[0030] 本发明通过预先设置配置文件,将报表的表头名称以及表头格式参数与代码分 离,若要修改报表的表头名称和/或表头格式参数,则直接在配置文件中进行修改即可,无 需再修改代码,而若是要增加报表,则设置新的配置文件,然后利用原有代码读取新的配置 文件即可,无需另行开发,实现了代码的复用和报表定制化的需求。
【附图说明】
[0031] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其它的附图。
[0032] 图1为本发明提供的一种报表生成方法实施例的流程图;
[0033] 图2为本发明提供的一种报表生成装置实施例的结构框图。
【具体实施方式】
[0034] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本 发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在 没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 方法实施例:
[0036] 参见图1,该图为本发明提供的一种报表生成方法实施例的流程图。
[0037] 本实施例提供的报表生成方法包括如下步骤:
[0038] 步骤S101:预先建立配置文件。
[0039] 通常情况下,表格包括表头和数据,表头是对数据进行的标识、标注或解读。现有 技术中报表生成的代码都是固定的,因此生成的报表的表头无论是内容还是格式都是固定 的,不能灵活的适用于不同种类的数据。而本实施例通过预先建立配置文件,将关于报表的 表头名称以及表头格式参数写在配置文件中,在生成报表的过程中,只要读取所述配置文 件,就能自动生成所述报表的表头。例如,参见表1,该表为配置文件的示意图,在该表中定 义了报表的表头名称以及对应的单元格在表格中的位置,所述位置采用四个参数表示,BP 起始行、起始列、结束行和结束列,若起始行和结束行不相同,和/或,起始列和结束列不相 同,贝需要进行单元格的合并。例如,对于表头名称为"XX统计表"的表格,起始行和起始列 都为0,结束行为1,结束列为181,表示将第一行的前181个单元格进行合并,并在合并后的 单元格填充"XX统计表"。
[0040] 表 1
[0041] 表头内容 起始行 起始列 结束行 结束列 XX统计表 0 Q 1 181 机构号 _2 0 4 0 机构名称 2 1 4 1 所属一级分行名称 2 242 营业状态 2343 机构层级 2: 4 4 4 员工人数 2 5 4 5 个人贷款 2 6 2 48 个人存款 2 49 2 60 支付结算 1. 61 2 99
[0042] 以表1为例,读取所述配置文件,以生成所述报表的表头可以通过如下方式去实 现:预先编写好根据报表的表头名称以及表头格式参数生成报表表头的公用代码,在读取 所述表1的配置文件的过程中,首先获取所述配置文件中表头名称和表头格式参数的总条 数m,在表1中,所述m= 10。然后令i = 1,所述i为所述表头数据的条序号,即从所述配置文件 的第一条开始读取,根据所述第一条的起始行、起始列、结束行和结束列分别对应的数据〇、 0、1、181生成对应的单元格后,将第一条中的表头内容"XX统计表"填充至该单元格,然后判 断i是否等于m,若否,则令i = 2,即利用所述代码读取所述配置文件的第二条,生成表头"机 构号",以此类推。读取所述配置文件,生成表头的过程就是将所述配置文件中的表头名称 和表头格式参数代入到所述公用代码并执行所述代入后的公用代码的过程。
[0043] 除了表头名称以及表格格式参数,所述配置文件中还可以包括表头的生成顺序 等,即在生成所述表头的过程中,按照预设的表头的生成顺序生成所述表头。
[0044] 所述配置文件中还可以包括表格的存储路径、是否需要压缩等配置参数,本发明 不做具体限定。
[0045] 步骤S102:读取所述配置文件,根据所述报表的表头名称以及表头格式参数生成 所述报表的表头。
[0046] 本实施例通过设置配置文件,将报表的表头名称以及表头格式参数与代码分离, 若要修改报表的表头名称和/或表头格式参数,则直接在配置文件中进行修改即可,无需再 修改代码,而若是要增加报表,则设置新的配置文件,然后利用原有代码读取新的配置文件 即可,无需另行开发,实现了代码的复用。
[0047]步骤S103:从数据库中获取与所述表头内容对应的数据,以生成所述报表。
[0048] 在本实施例中,所述报表包括表头和数据,其中,表头根据配置文件生成,数据从 数据库中获取。在实际应用中,从所述数据库中获取与报表的表头名称对应的数据有多种 实现方式,常用的实现方式是通过SQL语句获取。具体的,所述配置文件中还包括与所述表 头名称分别对应的SQL语句,所述SQL语句用于在数据库中查询与所述表头名称对应的数 据,通过读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,从而生成所述 报表。
[0049] 将所述SQL语句设置在所述配置文件的目的是便于修改,因为若要修改所述表头 名称,则可能需要修改与所述表头名称对应的SQL语句,以使查询到的数据与所述表头名称 相对应。
[0050] 另外,在实际应用中,可能会存在需要根据一个表头名称生成多张报表的情况,例 如按照省份分别生成对应的分报表。具体的,可以通过设置游标标志位来实现对报表的拆 分,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录 的机制。假设若表头名称的游标标志位为0时,表示所述表头名称不是报表拆分依据,而游 标标志位为1时,表不所述表头名称为报表拆分依据。在根据所述表头名称对应的SQL语句 从所述数据库中获取一个与所述表头名称对应的报表拆分数据后,在执行其他与所述表头 名称相关的数据提取时,需要依据该报表拆分数据提取对应的数据。例如,假设报表拆分依 据为省级行政区域,那么在获取到与该表头名称(即省级行政区域)对应的第一个报表拆分 数据(例如北京)时,生成与所述第一个数据对应的分报表;在获取到与该表头名称(即省级 行政区域)对应的第二个数据(例如上海)时,生成与所述第二个数据对应的分报表,以此类 推。
[0051] 在生成分报表的过程中,根据其他非报表拆分依据的表头名称对应的SQL语句提 取与分报表对应的数据,例如在生成与北京对应的分报表中,假设关于"人口"的表头名称 与省级行政区域相关,但并非为报表拆分依据,那么在利用与"人口"对应的SQL语句提取与 所述"人口"对应的数据时,只提取与北京对应的人口数据。
[0052]基于以上实施例提供的一种报表生成方法,本发明实施例还提供了一种报表生成 装置,下面结合附图来详细说明其工作原理。
[0053]装置实施例:
[0054]参见图2,该图为本发明提供的一种报表生成装置实施例的结构框图。
[0055] 本实施例提供的报表生成装置包括:配置文件建立单元101、表头生成单元102和 数据获取单元103;
[0056] 所述配置文件建立单元101,用于预先建立配置文件,所述配置文件中包括报表的 表头名称以及表头格式参数,所述表头格式参数是指与所述表头名称对应的表格的格式参 数;
[0057] 所述表头生成单元102,用于读取所述配置文件,根据所述报表的表头名称以及表 头格式参数生成所述报表的表头;
[0058] 所述数据获取单元103,用于从数据库中获取与所述表头名称对应的数据,以生成 所述报表。
[0059] 所述报表生成装置包括处理器和存储器,上述配置文件建立单元101、表头生成单 元102和数据获取单元103均作为程序单元存储在存储器中,由处理器执行存储在存储器中 的上述程序单元来实现相应的功能。
[0060] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个 或以上,通过调整内核参数来实现报表的定制化。
[0061] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存 储芯片。
[0062] 本实施例通过设置配置文件,将报表的表头名称以及表头格式参数与代码分离, 若要修改报表的表头名称和/或表头格式参数,则直接在配置文件中进行修改即可,无需再 修改代码,而若是要增加报表,则设置新的配置文件,然后利用原有代码读取新的配置文件 即可,无需另行开发,实现了代码的复用和报表的定制化。
[0063] 可选的,所述表头格式参数中包括表格的起始行、起始列、结束行和结束列;
[0064] 所述表头生成单元102,具体用于:
[0065]根据表格的起始行、起始列、结束行和结束列对对应的表格进行合并,并将对应的 表头名称填充至所述合并后的表格中,以生成所述报表的表头。
[0066]可选的,所述配置文件中还包括与所述表头名称分别对应的SQL语句,所述SQL语 句用于在数据库中查询与所述表头名称对应的数据;
[0067]所述数据获取单元103,具体用于:
[0068]读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述 报表。
[0069] 可选的,所述表头名称为报表拆分依据,对应的数据为报表拆分数据;
[0070] 所述数据获取单元103,具体用于:
[0071] 读取所述报表拆分依据的SQL语句,从所述数据库中获取与所述报表拆分依据的 SQL语句对应的报表拆分数据,分别生成与每个所述报表拆分数据对应的分报表。
[0072] 本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初 始化有如下方法步骤的程序代码:
[0073] 预先建立配置文件,所述配置文件中包括报表的表头名称以及表头格式参数,所 述表头格式参数是指与所述表头名称对应的表格的格式参数;
[0074] 读取所述配置文件,根据所述报表的表头名称以及表头格式参数生成所述报表的 表头;
[0075] 从数据库中获取与所述表头名称对应的数据,以生成所述报表。
[0076] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序 产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0077] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序 指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产 生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实 现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0078] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0079] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一 个方框或多个方框中指定的功能的步骤。
[0080] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网 络接口和内存。
[0081] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介 质的示例。
[0082] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法 或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动 态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除 可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、 数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备 或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算 机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0083] 当介绍本发明的各种实施例的元件时,冠词"一"、"一个"、"这个"和"所述"都意图 表示有一个或多个元件。词语"包括"、"包含"和"具有"都是包括性的并意味着除了列出的 元件之外,还可以有其它元件。
[0084] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实 施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例 的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明 的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其 中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出 创造性劳动的情况下,即可以理解并实施。
[0085]以上所述仅是本发明的【具体实施方式】,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
【主权项】
1. 一种报表生成方法,其特征在于,所述方法包括: 预先建立配置文件,所述配置文件中包括报表的表头名称以及表头格式参数,所述表 头格式参数是指与所述表头名称对应的表格的格式参数; 读取所述配置文件,根据所述报表的表头名称以及表头格式参数生成所述报表的表 头; 从数据库中获取与所述表头名称对应的数据,以生成所述报表。2. 根据权利要求1所述的方法,其特征在于,所述表头格式参数中包括表格的起始行、 起始列、结束行和结束列,所述根据所述报表的表头名称以及表头格式参数生成所述报表 的表头包括: 根据表格的起始行、起始列、结束行和结束列对对应的表格进行合并,并将对应的表头 名称填充至所述合并后的表格中,以生成所述报表的表头。3. 根据权利要求1或2所述的方法,其特征在于,所述配置文件中还包括与所述表头名 称分别对应的SQL语句,所述SQL语句用于在数据库中查询与所述表头名称对应的数据; 所述从数据库中获取与所述表头名称对应的数据,以生成所述报表包括: 读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述报表。4. 根据权利要求3所述的方法,其特征在于,所述表头名称为报表拆分依据,对应的数 据为报表拆分数据; 所述读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述 报表包括: 读取所述报表拆分依据的SQL语句,从所述数据库中获取与所述报表拆分依据的SQL语 句对应的报表拆分数据; 分别生成与每个所述报表拆分数据对应的分报表。5. -种报表生成装置,其特征在于,所述装置包括:配置文件建立单元、表头生成单元 和数据获取单元; 所述配置文件建立单元,用于预先建立配置文件,所述配置文件中包括报表的表头名 称以及表头格式参数,所述表头格式参数是指与所述表头名称对应的表格的格式参数; 所述表头生成单元,用于读取所述配置文件,根据所述报表的表头名称以及表头格式 参数生成所述报表的表头; 所述数据获取单元,用于从数据库中获取与所述表头名称对应的数据,以生成所述报 表。6. 根据权利要求5所述的装置,其特征在于,所述表头格式参数中包括表格的起始行、 起始列、结束行和结束列; 所述表头生成单元,具体用于: 根据表格的起始行、起始列、结束行和结束列对对应的表格进行合并,并将对应的表头 名称填充至所述合并后的表格中,以生成所述报表的表头。7. 根据权利要求5或6所述的装置,其特征在于,所述配置文件中还包括与所述表头名 称分别对应的SQL语句,所述SQL语句用于在数据库中查询与所述表头名称对应的数据; 所述数据获取单元,具体用于: 读取所述SQL语句,从所述数据库中获取与所述SQL语句对应的数据,以生成所述报表。8.根据权利要求7所述的装置,其特征在于,所述表头名称为报表拆分依据,对应的数 据为报表拆分数据; 所述数据获取单元,具体用于: 读取所述报表拆分依据的SQL语句,从所述数据库中获取与所述报表拆分依据的SQL语 句对应的报表拆分数据,分别生成与每个所述报表拆分数据对应的分报表。
【文档编号】G06F17/24GK105893634SQ201610439647
【公开日】2016年8月24日
【申请日】2016年6月17日
【发明人】郭淳, 张文杰, 程唯超, 王华丹, 方达, 冷泉
【申请人】中国银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1