掌桥专利:专业的专利平台
掌桥专利
首页

一种报表生成装置及方法、存储介质

文献发布时间:2024-04-18 19:58:30


一种报表生成装置及方法、存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种报表生成装置及方法、存储介质。

背景技术

生成报表的业务需求十分广泛。例如,在银行等机构中存储着大量的用户的业务数据,可以根据用户的业务数据制作报表对用户的行为进行分析,或者制作报表提供给监管机构进行审查等等。

目前在通过数据生成报表时,通常是从已知的报表模板中获取与待生成报表的业务需求相适应的报表模板,进而将数据填充至获取到的报表模板,生成报表。然而,报表模板总是基于已经存在的业务需求选择相应的字段固定编辑至报表模板中,这样往往不能适应新的业务需求。

发明内容

本申请提供了一种报表生成装置及方法、存储介质,可以适应更加丰富的报表生成需求。

第一方面,本申请提供了一种报表生成装置。该报表生成装置包括:获取模块、确定模块、生成模块及多个取数模块。其中,取数模块用于根据取数表达式从数据库中筛选符合字段属性的数据,不同取数模块包括的取数表达式不同。获取模块,用于获取第一报表的M个字段,M个字段为第一报表中待填充数据的字段,M为正整数。确定模块,用于根据字段与取数模块的对应关系从多个取数模块中确定M个字段对应的M个取数模块。其中,一个取数模块用于获取一个字段的数据。生成模块,用于根据M个取数模块获取到的数据生成第一报表。

在本申请实施例中,由于不同字段的数据生成逻辑往往不同,可以将不同字段数据的生成模块化处理,将每个字段对应的取数表达式封装到模块中,得到取数模块,使得取数模块可以根据取数表达式从数据库中筛选符合字段属性的数据。不同取数模块包括的取数表达式不同,这样,在生成第一报表时,报表生成装置可以根据第一报表中所包括的字段获取对应的取数模块,一个取数模块用于获取一个字段的数据,通过这些取数模块生成第一报表。因此,相比于通过固定的报表模板生成数据来说,报表生成装置可以适应更加丰富的报表生成需求。

可选的,确定模块具体用于:查询数据库中多个第二报表所包括的字段,其中,多个第二报表为历史报表,多个第二报表所包括的字段中每个字段关联一个取数模块。确定多个第二报表所包括的字段中与M个字段相同的字段对应的取数模块为第一报表对应的M个取数模块。

可选的,生成模块具体用于:根据M个取数模块与第一报表生成第一报表的报表模板。遍历报表模板的M个字段,根据M个字段中每个字段对应的取数模块从数据库中获取数据。将获取到的数据按照预设的填充规则填充至对应字段中。

可选的,生成模块具体用于:若M个字段为第一报表中按列或单元格进行划分的字段,将获取到的数据按顺序填充至M个字段对应的列或单元格。若M个字段为第一报表中按行或单元格进行划分的字段,将获取到的数据填充至M个字段对应的行或单元格。

可选的,报表生成装置还包括关联模块,该关联模块用于:获取多个第二报表。确定多个第二报表中的每个字段及每个字段对应的取数表达式。将取数模块与对应的字段进行关联;其中,关联的字段与取数模块的取数表达式相同。

第二方面,本申请提供了一种报表生成方法。该方法包括:获取第一报表的M个字段,M个字段为第一报表中待填充数据的字段,M为正整数。根据字段与取数模块的对应关系从多个取数模块中确定M个字段对应的M个取数模块。其中,一个取数模块用于获取一个字段的数据,取数模块用于根据取数表达式从数据库中筛选符合字段属性的数据,不同取数模块包括的取数表达式不同。根据M个取数模块获取到的数据生成第一报表。

可选的,在获取第一报表的M个字段之前,该方法还包括:获取多个第二报表。确定多个第二报表中的每个字段及每个字段对应的取数表达式。将取数模块与对应的字段进行关联;其中,关联的字段与取数模块的取数表达式相同。

可选的,根据字段与取数模块的对应关系从多个取数模块中确定M个字段对应的M个取数模块,包括:查询数据库中多个第二报表所包括的字段,其中,多个第二报表为历史报表,多个第二报表所包括的字段中每个字段关联一个取数模块。确定多个第二报表所包括的字段中与M个字段相同的字段对应的取数模块为第一报表对应的M个取数模块。

可选的,根据M个取数模块获取到的数据生成第一报表,包括:根据M个取数模块与第一报表生成第一报表的报表模板。遍历报表模板的M个字段,根据M个字段中每个字段对应的取数模块从数据库中获取数据。将获取到的数据按照预设的填充规则填充至对应字段中。

可选的,将获取到的数据按照预设的填充规则填充至对应字段中,包括:若M个字段中为第一报表中按列或单元格进行划分的字段,将获取到的数据按顺序填充至M个字段对应的列或单元格。若M个字段为第一报表中按行或单元格进行划分的字段,将获取到的数据填充至M个字段对应的行或单元格。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器以及与至少一个处理器通信连接的存储器。其中,存储器存储有被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面中任一项所述的方法。

第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序指令,该计算机程序指令用于执行上述第一方面中任一项所述的方法。

第五方面,本申请实施例还提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述如第一方面的方法以及各个可选项所述的步骤。

附图说明

图1为本申请实施例提供的报表生成装置的结构示意图;

图2为本申请实施例提供的报表生成方法的流程示意图;

图3为本申请实施例提供的第二报表的示意图;

图4为本申请实施例提供的电子设备的结构示意图。

具体实施方式

为了更好地理解本发明实施例提供的方案,首先介绍本发明实施例所涉及的一些技术概念。需要说明的是,在本申请技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。

1)报表,一般由行和列组成。可以将报表按行、列或者单元格进行划分,使得报表的行、列或者单元格为一个字段,在字段中填充固定属性的数据。例如,一种关于证券价格的报表包括“证券代码”、“发行价格”、“金额”、“期末余额”等字段,将“证券代码”字段填充证券产品的代码号。

2)报表模板,指的是具有固定字段但未填充数据的报表。报表模板中还包括取数表达式,通过取数表达式获取数据源中的数据导入到报表模板的对应字段中,可以获得报表。

3)取数表达式是具有运算逻辑的表达式,可以按照表达式设定的逻辑从数据源中获取数据填充至报表中。由于不同字段获取数据的逻辑通常不同,即不同字段的取数表达式不同,在建立报表模板时,将不同字段对应的取数表达式编辑在报表模板的代码中得到报表模板。这样,报表模板在与数据源结合时,报表模板中对应的字段可以根据取数表达式获取数据源中的数据,生成报表。

在现有的报表生成方案中,通过将数据源填充至报表模板生成报表的具体过程为:根据报表的业务需求,确定待生成的报表中包括哪些字段,为了生成这些字段的数据,需要从数据库中获取预先建立的报表模板。由于报表模板有多个,报表模板中的字段是在建立报表模板时固定编辑在报表模板中的,因此,需要在预先建立的报表模板中选取符合业务需求的报表模板。这个过程通常是将需要生成的字段与现有的报表模板中的字段进行匹配,如果匹配度较高,则可以认为该报表模板是满足业务需求的报表模板。可以将数据源导入该报表模板生成报表。如果匹配度较低,则可以认为不存在与业务需求相适应的报表模板,需要重新建立报表模板以满足业务需求。

这种方式通常适用于生成报表的业务需求相对固定的场景,即在该种场景下待生成报表中的字段与以往生成的历史报表中的字段往往相同,生成历史报表时所使用的报表模板同样也适用于待生成报表,可以直接获取历史报表所使用的报表模板用于生成待生成报表。如果存在不同的业务需求,则事先编辑不同的报表模板,以应对不同的业务需求。然而,这种方式的弊端在于,由于通常无法在固定的报表模板基础上进行更改,如果存在新的业务需求,或者需要增加和/或删除原有的某些字段,通过固定的报表模板则无法实现。因此,基于固定报表模板生成报表的方式不够灵活,影响生成报表的效率。

为此,本申请提供了一种报表生成装置。通过将不同字段数据的生成模块化处理,将每个字段对应的取数表达式封装到模块中,得到取数模块,报表生成装置包括多个取数模块。在生成报表时,报表生成装置可以根据报表中所包括的字段获取对应的取数模块,一个取数模块用于获取一个字段的数据,通过这些取数模块生成报表,无需重新编辑报表模板,提高报表生成的效率。

下面结合具体实施例对报表生成装置进行简要介绍。需要说明的是,在下文介绍报表生成装置的过程中,所指的第一报表为待生成的报表,第二报表指的是已经生成好的历史报表。应理解,本申请实施例所指的“第一”、“第二”仅用于对不同的对象进行区分,并不用于限定不同对象之间的大小、顺序、优先级等。

在相关技术中,报表模板是将字段对应的取数表达式固定编辑在报表模板的代码中,也就是说,在编辑报表模板时按照预设的字段生成顺序将每个字段对应的取数表达式固定编辑至报表模板的底层代码中。这样,报表模板的底层代码执行时可以执行取数表达式对应的逻辑,从数据源中获取数据。因此,报表模板中包括的字段及每个字段获取数据的顺序相对固定,不易更改。

在本申请实施例中,考虑将字段的取数操作模块化处理,为每个字段的取数操作单独编写代码,并将取数表达式封装在独立的代码模块中,得到取数模块。由于数据库中包括多个字段,这样,可以得到多个取数模块。由于取数模块中封装了取数表达式,通过取数表达式从数据库中筛选符合字段属性的数据,使得各个取数模块的取数操作可以单独实现。这样,各个取数模块可以灵活组合,适应不同场景的业务需求。

请参见图1,示出了报表生成装置的结构示意图。报表生成装置100包括获取模块101、确定模块102、生成模块103及多个取数模块(包括取数模块105、取数模块106、取数模块107…)。其中,取数模块用于根据取数表达式从数据库中筛选符合字段属性的数据,不同取数模块包括的取数表达式不同。获取模块101用于获取第一报表的M个字段,M个字段为第一报表中待填充数据的字段,M为正整数。确定模块102用于根据字段与取数模块的对应关系从多个取数模块中确定M个字段对应的M个取数模块;其中,一个取数模块用于获取一个字段的数据。生成模块103用于根据M个取数模块获取到的数据生成第一报表。

作为一种可选的实施方式,确定模块102具体用于查询数据库中多个第二报表所包括的字段。多个第二报表为历史报表,多个第二报表所包括的字段中每个字段关联一个取数模块。确定模块102可以用于确定多个第二报表所包括的字段中与M个字段相同的字段对应的取数模块为第一报表对应的M个取数模块。

作为一种可选的实施方式,生成模块103具体用于根据M个取数模块与第一报表生成第一报表的报表模板。生成模块103可以用于遍历报表模板的M个字段,根据M个字段中每个字段对应的取数模块从数据库中获取数据。将获取到的数据按照预设的填充规则填充至对应字段中。

作为一种可选的实施方式,生成模块103具体用于,若M个字段为第一报表中按列或单元格进行划分的字段,将获取到的数据按顺序填充至M个字段对应的列或单元格。若M个字段为第一报表中按行或单元格进行划分的字段,将获取到的数据填充至M个字段对应的行或单元格。

作为一种可选的实施方式,报表生成装置100还包括关联模块104,关联模块104用于获取多个第二报表。确定多个第二报表中的每个字段及每个字段对应的取数表达式。将取数模块与对应的字段进行关联;其中,关联的字段与取数模块的取数表达式相同。

请参见图2,基于上述报表生成装置100,本申请实施例还提供了一种报表生成方法,下面结合具体流程图对该方法进行介绍。

S201、获取第一报表的M个字段,M个字段为第一报表中待填充数据的字段,M为正整数。

当用户存在对数据库中的数据进行统计分析的需求时,可以生成第一报表。用户可以根据实际需求确定生成哪些字段的数据,可以确定M个字段,即第一报表包括M个字段。例如,这M个字段可以包括:“证券代码”、“发行价格”、“金额”、“期末余额”等。通常情况下,第一报表的M个字段为以行或列化分的字段,也就是说,第一报表中的所有字段只能同时以行进行划分,或者只能同时以列进行划分。如果是以行进行划分的字段,在填充数据时则将数据填充至字段对应的行中,如果是以列进行划分的字段,在填充数据时则将数据填充至字段对应的列中。当然,除了以行或列形式,第一报表中还可能存在以单元格划分的字段,即以单独某个单元格作为一个字段。例如,“总计”。

用户可以将M个字段预先填充至第一报表,使得获取到第一报表后可以根据第一报表的M个字段获取数据,然后将数据填充至第一报表待填充数据的区域。

S202、根据字段与取数模块的对应关系从多个取数模块中确定M个字段对应的M个取数模块。

为了尽可能的满足报表生成时的业务需求,可以将历史的第二报表用于生成取数模块。报可以为历史的第二报表中的每个字段都编辑取数模块。具体的,可以获取多个第二报表中的字段及每个字段对应的取数表达式,根据每个字段对应的取数表达式生成取数模块。可以将取数模块与对应的字段进行关联,建立字段与取数模块之间的对应关系,并将字段与取数模块的对应关系存储至数据库。其中,关联的字段与取数模块的取数表达式相同。

如图3,为历史报表的一种示例。历史的第二报表中包括“组合信息”、“交易场所”、“证券代码”、“股票名称”、“发行价格”等字段。可以为每个字段及每个字段对应的取数表达式分别编辑对应的取数模块,并为每个取数模块进行命名。例如,“组合信息字段”对应的取数模块命名为“AST_NM_M1”,将“股票名称”对应的取数模块命名为“STK_NM_M1”等等。可以建立“股票名称”字段与该取数模块的对应关系,在其他报表生成“股票名称”字段对应的数据时,都可以获取并使用命名为“STK_NM_M1”的取数模块。

可以根据字段与取数模块的对应关系确定M个字段对应的M个取数模块。可以查询数据库中多个第二报表所包括的字段,可以判断多个第二报表所包括的字段中是否存在该M个字段。由于多个第二报表中的每个字段都与取数模块关联,若多个第二报表中存在该M个字段,进一步可以确定多个第二报表所包括的字段中与M个字段相同的字段对应的取数模块为第一报表对应的M个取数模块。

在一种示例中,报表生成装置还可以包括前端可视化界面。用户可以通过可视化界面查询数据库中存储的多个第二报表,确定已经生成了的第二报表中所包括的字段,以及是否包括待生成的第一报表的M个字段。具体的,用户可以通过前端可视化界面通过点击、拖拽等操作查询历史报表中包括的字段,并将第二报表中的字段对应的取数模块拖拽至第一报表对应字段的位置处。通过将第二报表可视化预览,可以提高报表生成的效率。

S203、根据M个取数模块获取到的数据生成第一报表。

在获取到M个取数模块后,根据M个取数模块生成第一报表的报表模板。对于获取到的M个取数模块,可以结合这M个取数模块与第一报表,使得第一报表中的每个字段存在具体的取数模块,进而生成第一报表的报表模板。

由于报表模板是通过M个取数模块组装而成的,在生成报表模板时并未限定M个取数模块执行的顺序,因此,在生成报表模板后可以遍历报表模板的M个字段,根据实际需求按顺序生成每个字段的数据。在生成每个字段的数据时,每个字段对应的取数模块可以独立运行,执行封装在其中的取数表达式,通过取数表达式设定的取数逻辑在数据库中获取数据,并将获取到的数据按照预设的填充规则填充至对应的字段中。

由于第一报表的M个字段是按列、单元格划分的字段,或者按行、单元格划分的字段,则对应的数据填充规则也包括按列填充或者按行填充或者按单元格填充。若M个字段为第一报表中按列、单元格进行划分的字段,按列填充可以是将获取到的数据按顺序填充至M个字段对应的列中,按单元格填充可以是将获取到的数据填充至M个字段指定单元格中。举例来说,在“证券代码”字段的生成过程中,从数据库中搜索与证券产品相关的数据,并获取证券产品的代码,按照顺序依次填入“证券代码”字段对应的列中。若M个字段为第一报表中按行、单元格进行划分的字段,按行填充可以是将获取到的数据按顺序填充至M个字段对应的行中,其过程与按列填充相类似,这里不再赘述。

在遍历完第一报表的所有字段后,可以生成完整的第一报表。报表生成装置可以将第一报表进行可视化展示,以供用户进行统计分析。

在本申请实施例中,将不同字段数据的生成操作模块化处理,每个字段对应的取数表达式封装到模块中,可以得到取数模块。报表生成装置包括获取模块、确定模块、生成模块及多个取数模块。这样,在生成第一报表时,报表生成装置可以根据第一报表中所包括的字段获取对应的取数模块生成数据,相比于通过固定的报表模板生成数据来说,报表生成装置可以适应更加丰富的报表生成需求。

请参见图4,基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器401以及与至少一个处理器通信连接的存储器402。其中,存储器存储有被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行如图2所示的报表生成方法。

本申请实施例中不限定处理器401与存储器402之间的具体连接介质,图4中是以处理器401和存储器402之间通过总线400连接为例,总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本申请实施例中的计算设备还可以包括通信接口403,该通信接口403例如是网口,计算设备可以通过该通信接口403接收数据或者发送数据。

其中,处理器401是计算设备的控制中心,可以利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,计算设备的各种功能和处理数据,从而对计算设备进行整体监控。可选的,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

可选的,处理器401具体可以是通用处理器,例如中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field ProgrammableGate Array,简称:FPGA)开发的硬件电路,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的报表生成方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

通过对处理器401进行设计编程,可以将前述实施例中介绍的报表生成方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的报表生成方法的步骤,如何对处理器401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。

可选的,在本申请实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前述的报表生成方法中所包括的步骤。存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。

基于同一发明构思,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序指令,该计算机程序指令用于执行上述任意实施例中的方法。在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(Universal Serial Busflash drive,USB)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的存储介质。

在一些可能的实施方式中,本申请提供的报表生成方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算设备上运行时,程序代码用于使该计算设备执行本说明书上述描述的根据本申请各种示例性实施方式中图2所示的报表生成方法中的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash disk)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 报表生成方法、装置、计算机设备及存储介质
  • 基于大数据的报表生成方法及装置、电子设备、存储介质
  • 报表生成方法、装置、计算机设备和存储介质
  • 一种数据报表实时统计方法、装置、设备及可读存储介质
  • 一种APP的自动生成方法、装置、终端设备及可读存储介质
  • 报表生成方法、报表生成装置、电子设备及存储介质
  • 报表生成方法、报表生成装置以及可读存储介质
技术分类

06120116502004