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

一种根据报表配置自动生成报表的方法和系统

文献发布时间:2023-06-19 09:30:39


一种根据报表配置自动生成报表的方法和系统

技术领域

本说明书涉及数据处理领域,特别涉及一种根据报表配置自动生成报表的方法和系统。

背景技术

随着互联网的快速发展和业务量的不断提高,各类业务的数据通常需要以报表的形式展现。相关技术中,报表的生成需要开发人员根据报表实际使用需求进行计算机语言的编码开发,然后根据计算机语言生成报表,然而编码复杂,使得生成报表的流程繁琐,耗时长、效率低。

因此,期望提供一种根据报表配置自动生成报表的方法和系统,以提高生成报表的效率。

发明内容

本说明书实施例的一个方面提供一种根据报表配置自动生成报表的方法,所述方法包括:在接收到报表生成请求后,加载与所述报表生成请求相关联的报表配置;基于所述报表生成请求和所述报表配置,确定衍生指标;其中,在所述衍生指标中配置有与原始指标相关联的函数关系;基于所述衍生指标以及所述函数关系,确定原始指标;基于所述衍生指标和所述原始指标,确定用于生成报表的目标报表数据,以及基于所述目标报表数据自动生成报表。

本说明书实施例的另一个方面提供一种根据报表配置自动生成报表的系统,所述系统包括:加载模块,可以用于在接收到报表生成请求后,加载与所述报表生成请求相关联的报表配置;第一确定模块,可以用于基于所述报表生成请求和所述报表配置,确定衍生指标;其中,在所述衍生指标中配置有与原始指标相关联的函数关系;第二确定模块,可以用于基于所述衍生指标以及所述函数关系,确定原始指标;第三确定模块,可以用于基于所述衍生指标和所述原始指标,确定用于生成报表的目标报表数据,以及基于所述目标报表数据自动生成报表。

本说明书实施例的另一个方面提供一种根据报表配置自动生成报表的装置,包括处理器,所述处理器用于执行根据报表配置自动生成报表的方法。

本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行根据报表配置自动生成报表的方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的根据报表配置自动生成报表的系统应用场景的示例性示意图;

图2是根据本说明书一些实施例所示的根据报表配置自动生成报表的方法的示例性流程图;

图3是根据本说明书一些实施例所示的确定目标报表数据的示例性流程图;

图4是根据本说明书另一些实施例所示的确定目标报表数据的示例性流程图;

图5是是根据本说明书的一些实施例所示的根据报表配置自动生成报表的系统的模块图;

图6是根据本说明书一些实施例所示的报表配置的示例性示意图;

图7是根据本说明书一些实施例所示的用于生成报表的数据表的示例性示意图。

具体实施例

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

报表是指用于显示数据的表格或图表。例如,数据表格、折线图、柱状图等。报表被广泛应用于各种应用场景,例如,金融场景、互联网场景、物流场景等。比如,金融场景下的支付业务、退款业务、转账业务等,用户可以通过使用报表的方式来对业务数据进行分析。相关技术中,一次报表的生成,需要对用于生成报表的数据接口进行复杂的编码开发,完成数据接口的编码开发后,还需要在数据接口中对数据进行接收、计算、汇总等一系列处理后,才能生成完整的报表。然而,由于业务的数据量繁多,需要针对不同业务或不同类型的数据生成大量不同的报表,通常一个报表需要对应一个数据接口,因此需要完成大量的数据接口编码开发工作,以及数据处理工作,生成报表的流程繁琐、时间长、效率低。本说明书一些实施例提出一种根据报表配置自动生成报表的方法和系统,该方法可以无需对数据接口进行编码开发,通过配置化设计和加载报表配置的方式来生成报表,可以简化生成报表的流程、提高生成报表的效率。

图1是根据本说明书一些实施例所示的根据报表配置自动生成报表的系统的应用场景的示例性示意图。

根据报表配置自动生成报表的系统100可以通过实施本说明书中披露的方法和/或过程来根据配置的报表配置来生成报表。可以根据在系统中设置的报表配置来获取用于生成报表的数据以及对该数据进行处理,并将该数据用于生成报表,生成的报表类型可以灵活配置,提高报表生成的效率,节约开发人员的时间成本。

如图1所示,在应用场景中可以包括服务器110、用户终端120、存储设备130和网络140。

在一些应用场景中,服务器110可以接收来自用户终端120的报表生成请求,并在接收到报表生成请求后,加载与该报表生成请求相关联的报表配置;服务器110可以基于该报表生成请求和报表配置,确定衍生指标;其中,衍生指标中配置有与原始指标相关联的函数信息;服务器110可以基于所述衍生指标以及所述函数关系,确定原始指标;服务器110可以基于该衍生指标和原始指标,确定用于生成报表的目标报表数据,以及基于所述目标报表数据自动生成报表。在一些实施例中,服务器110还可以将所述目标报表数据发送给用户终端120,以使用户终端120根据目标报表数据生成报表。

服务器110可以是带有数据获取、存储、计算、分析和/或发送功能的设备,例如,可以用于处理报表生成请求。在一些实施例中,服务器110可以从用户终端120接收报表生成请求,并加载与所述报表生成请求相关联的报表配置,并根据该报表配置确定用于生成报表的目标报表数据。在一些实施例中,服务器110可以是单个的服务器或者服务器群组。所述服务器群可以是集中式的或分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以通过网络140访问存储在存储设备130、用户终端120中的信息和/或数据。再例如,服务器110可以直接连接到存储设备130、用户终端120以访问存储的信息和/或数据。在一些实施例中,服务器110可以在一个云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、云之间、多重云等或上述举例的任意组合。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与报表生成有关的数据和/或信息以执行一个或多个本说明书中描述的功能。例如,处理引擎112可以在接收到报表生成请求后,加载与该报表生成请求相关联的报表配置;并根据该报表配置确定用于生成报表的目标报表数据。处理引擎112可以包括各种常见的处理器,例如通用中央处理器(Central Processing Unit,CPU),图形处理器(Graphics ProcessingUnit,GPU),微处理器(Microprocessor Unit,MPU),特殊应用集成电路(Application-Specific Integrated Circuit,ASIC),或其他类型的集成电路。

用户终端120可以是用户所使用的一个或多个终端设备或软件。在一些实施例中,用户终端120可以是移动设备120-1、平板计算机120-2、膝上型计算机120-3、台式计算机120-4等具有输入和/或输出功能的设备中的一种或其任意组合。在一些实施例中,用户终端120可以向服务器110发送报表生成请求。在一些实施例中,用户终端120可以接收服务器110返回的目标报表数据,并根据该目标报表数据生成报表。

存储设备130可以用于存储数据和/或指令。例如,存储设备130可以存储用于生成报表的相关数据、报表配置等。在一些实施例中,存储设备130可以存储服务器110用于执行或使用来完成本说明书中描述的示例性的方法的数据和/或指令。在一些实施例中,存储设备130可以包括大容量存储器、可移动存储器、挥发性读写存储器(例如,随机存取存储器RAM)、只读存储器(ROM)等或以上任意组合。示例性的,大容量储存器可以包括磁盘、光盘、固态磁盘等。在一些实施例中,存储设备130可以在云平台上实现。在一些实施例中,存储设备130可以是服务器110的一部分。

网络140可以连接系统的各组成部分和/或连接系统与外部资源部分。网络140使得系统100的各组成部分(例如,服务器110、用户终端120和存储设备130)之间,以及与系统之外其他部分之间可以进行通讯,促进数据和/或信息的交换。例如,服务器110可以通过网络140接收用户终端120的报表生成请求。在一些实施例中,网络140可以是有线网络或无线网络中的任意一种或多种。例如,网络140可以包括电缆网络、光纤网络、电信网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。各部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。在一些实施例中,网络可以是点对点的、共享的、中心式的等各种拓扑结构或者多种拓扑结构的组合。在一些实施例中,网络140可以包括一个或以上网络接入点。例如,网络140可以包括有线和/或无线网络接入点,例如基站和/或网络交换点140-1、140-2等。通过这些网络接入点,应用场景的一个或多个组成部分可以连接到网络140上以交换数据和/或信息。

图2是根据本说明书一些实施例所示的根据报表配置自动生成报表的方法的示例性流程图。在一些实施例中,流程200可以由处理设备(例如,服务器110)执行。例如,流程200可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。流程200可以包括以下操作。

步骤202,在接收到报表生成请求后,加载与所述报表生成请求相关联的报表配置。在一些实施例中,步骤202可以由加载模块510执行。

在一些实施例中,用户或者业务接口可以通过其所使用的设备(例如,用户终端120)向处理设备(例如,服务器110)发送报表生成请求,以获取相应的报表数据来生成报表。报表可以帮助用户对业务数据进行分析。

报表生成请求可以是指请求生成报表的指令。在所述报表生成请求中可以包含与所请求生成的报表相关的报表参数信息。例如,报表参数(比如,报表的数据项)等。结合图6说进行说明,图6是根据本说明书一些实施例所示的报表配置的示例性示意图。假设想要请求商家的线上销售金额数据的报表,则在报表生成请求中可以包括报表参数信息“$indicatorType”、“count”以及“online”;其中,“$indicatorType”表示前端传输的报表参数为indeicatorType,$用于表示这是前端传输的参数,“count”表示金额数据,“online”表示线上金额数据。报表生成请求中的参数信息可以用于查询相关联的报表配置,例如,可以使用“$indicatorType”参数查询相关联的报表配置。

报表配置可以是指生成报表时对生成报表所需要的各项指标的处理方式的定义。指标是指以字段的形式表示的报表的数据项,在报表配置中可以包括一个或多个字段。字段也就是自定义的文字段落,可以以任何文字形式进行表示。例如,图6中的每个花括号内的每一行文字都可以理解为一个字段,一个或多个字段组成一个指标,比如,610中的"Count:Condition":"GroupCount"为一个指标,620中的{"alias":"GroupCount","expression":"group(Count,extBizType)","show":true}为一个指标。

报表配置与报表生成请求相关联是指在报表生成请求和报表配置之间存在对应关系。一个报表配置可以对应于生成一种或多种类型的报表,例如,在一个报表配置中可以配置生成多种类型的报表所对应的指标,而报表生成请求中可以包含请求生成的报表所需要的报表参数信息,若报表配置中包括的指标中具有与报表参数信息相同的指标类型参数,则可以认为该报表配置与报表生成请求相关联。例如,沿用上述报表生成请求的示例,在报表生成请求中包括了指示报表指标类型的参数信息“$indicatorType:Condition”,根据该参数信息到报表配置中进行查询,如图6所示,在报表配置中的quotaCondition":"$indicatorType:Condition"字段中,包括了“$indicatorType:Condition”,与报表生成请求中的指标类型参数相同,则可以认为该报表配置与报表生成请求相关联。

需要说明的是,报表配置中的字段查询方式为key-value(键值)的形式,以引号之间的冒号为界,冒号前的内容为key,冒号后的内容为value。例如,字段"quotaCondition":"$indicatorType:Condition"中,"quotaCondition"为key,"$indicatorType:Condition"为值。

在一些实施例中,可以预先将配置的报表配置存储在数据库或存储设备中,在接收到报表生成请求后,处理设备(加载模块510)可以通过从数据库或存储设备中读取所述报表配置的方式完成加载。

步骤204,基于所述报表生成请求和所述报表配置,确定衍生指标;其中,在所述衍生指标中配置有与原始指标相关联的函数关系。在一些实施例中,步骤204可以由第一确定模块520执行。

衍生指标是指对原始指标的数据项对应的数据进行逻辑处理后的数据项的字段表示。数据项是指由某种类型的数据组成的数据集合,例如,金额项数据、时间项数据等。逻辑处理可以包括按照一定计算方式和/或处理方式对数据项对应的数据进行处理。计算方式可以包括求和、求差、计算百分比、计算同比等;处理方式可以包括分组、累计、重命名等。

函数关系是指对用于生成报表的原始数据进行逻辑处理的函数信息。在所述衍生指标中配置有与原始指标相关联的函数关系。例如,图6中的衍生指标620中的"expression":"group(Amount,extBizType)"字段中,"group(Amount,extBizType)"即表示配置的函数关系,具体的,“group”表示该函数关系为分组函数,表示以extBizType字段的内容对Amount项的数据进行分组。关于衍生指标中的函数关系的更多细节可以参见本说明书其他相关部分,例如,图3及其相关说明。

原始指标是指与报表原始数据相关联的数据项。原始指标可以用于获取根据衍生指标中的函数关系进行逻辑处理的原始数据项。关于原始指标的更多细节可以参见后文步骤206中的描述,此处不再赘述。

在一些实施例中,处理设备(第一确定模块520)可以根据所述报表生成请求所包含的报表参数信息,从所述报表配置中查询得到所述衍生指标。

具体地,处理设备可以基于报表生成请求,确定报表配置中的报表参数指标。报表参数指标是指与报表生成请求中的报表参数信息对应的指标。在报表生成请求中可以包含所请求生成报表的报表参数信息,例如,交易总金额、交易次数、线上金额数据、线下金额数据等。在报表配置中设置有与报表参数信息具有对应关系的报表参数指标,在报表参数指标中包括了相应的参数的字段,例如,交易总金额字段、交易次数字段等。处理设备可以根据报表参数信息与报表参数指标的对应关系确定报表配置中的报表参数指标。

例如,参见图6,以610中的各个字段表示报表配置中的报表参数指标610,从图中可以看出,在报表参数指标中包括了多个字段,比如,“requestMapping”(请求映射)、“quotaCondition”(指标条件)和“quotaConditionMapping”(指标条件映射)。在报表生成请求中可以包含与以上字段对应的报表参数信息,例如,“$indicatorType:Condition”、“online”等,基于该报表参数信息可以到报表配置中进行查询,首先查询到"quotaCondition":"$indicatorType:Condition"字段,进一步地,在报表配置的报表参数指标610的字段中,以“condition”和“online”为查询条件,查询到"Amount:Condition":"GroupAmount"、"Count:Condition":"GroupCount"、"Ratio:Condition":"PerAmout"、"Online:Amount":"ONLINE"以及"Online:Count":"ONLINE",即确定了与该次报表生成请求对应的报表参数指标。需要说明的是,图6所示的报表配置仅仅作为示例,以上例子也并不旨在对本说明书的报表配置的形式进行限定。

进一步地,处理设备可以根据报表参数指标,确定所述衍生指标。由于在报表配置中的报表参数指标和衍生指标之间具有对应的报表参数指标的指标名(即对应的字段关键字,例如,GroupAmount、GroupCount、PerAmout),则根据报表参数指标中的指标名,到报表配置中的衍生指标的字段中进行查找,即可确定衍生指标。

例如,仍结合附图6进行说明,根据上述指标名到衍生指标620中进行查找,在衍生指标620中同样配置有多个字段(也可以理解为配置有多个衍生指标),示例性地,在图6中以"derivativeQuotaConfigs"后的字段进行表示。根结合附图可以得知,在衍生指标620最上面的花括号中包括了{"alias":"GroupAmount","expression":"group(Amount,extBizType)","show":true},其中就有与报表参数指标对应的信息,例如,"GroupAmount",因此,可以确定该衍生指标为报表参数指标对应的衍生指标。其中,alias表示指标名称;expression表示配置的函数关系;show表示是否在报表结果中显示。

在一些实施例中,报表参数指标中包括了“quotaCondition”和“quotaConditionMapping”的字段对应的参数信息时,可以忽略"show":true字段。“requestMapping”后面的字段用于表示生成报表的数据为线上数据或者线下数据,可以由报表生成请求所包含的参数信息直接指示。

通过上述设置,在报表配置中的各指标中可以设置多个用于生成报表的字段,在接收到报表请求后,根据报表请求中的报表参数信息,从报表配置的字段中查询到对应的报表参数指标,再根据确定的报表参数指标的字段从配置的一个或多个衍生指标的字段中进行查询,确定与该次报表生成请求对应的衍生指标。例如,假设报表生成请求为线上商品销售次数的报表,则报表生成请求中的报表参数信息对应为“$indicatorType:Condition”、“amount”和“online”,则可以首先根据$indicatorType:Condition参数确定报表配置,假设确定的报表配置为图6所示,则进一步的根据amount和online参数确定报表参数指标为"Amount:Condition":"GroupAmount"和"Online:Amount":"ONLINE";进一步地,根据报表参数指标"Amount:Condition":"GroupAmount",确定衍生指标为{"alias":"GroupAmount","expression":"group(Amount,extBizType)","show":true}。通过改变报表生成请求中的参数,例如,将“Amount”修改为“Count”或者“Ratio”,则可以确定生成不同类型的报表的衍生指标。以此,可以实现通过一个报表配置生成多个类型的报表的功能,极大的改善了每一个报表都需要进行报表开发的情况,提高了报表生成的效率。如上所述,图6的报表配置可以生成销售金额数据的报表(报表参数包括Count)、销售金额次数的报表(报表参数包括Amount)、以及销售金额环比增长的报表(报表参数包括Ratio)。

在一些实施例中,可以采用groovy语言编写用于执行所述与原始指标相关联的函数关系的处理器。groovy语言编写的处理器能够实现对函数关系的动态加载。动态加载是指在对函数关系进行计算机语言编写后,可以即时发布并执行函数。例如,编译完成后通过点击发布按钮或刷新编译界面后,即可实现编写的函数功能,以此,可以减少代码开发及上线的时间,对报表生成的配置化实现了扩展,可以支持更多类型的报表配置化生成的扩展开发,也可以快速响应客户需求,对报表的处理逻辑或配置进行快速变更生效。

步骤206,基于所述衍生指标及所述函数关系,确定原始指标。在一些实施例中,步骤206可以由第二确定模块530执行。

原始指标是指与报表原始数据相关联的数据项的指标。参见图6,原始指标630可以用"reportQuotaConfigs"后面的字段进行表示,同样地,在原始指标中可以包括多个字段。对于原始指标,以第一个花括号内的原始指标为例,其可以包括"alias":"Amount"、"source":"ReportQuota"、"unit":"Amount"、"bizType":"LIQ_C_DPT_AMT"、"subBizType":"$channelType:Amount"、"extBizType":"_notNull"以及"sumSubtype":true。其中,alias与衍生指标中的字段含义一致,表示指标名;source表示原始指标对应的原始指标数据项的查询地址;unit表示查询的数据类型,例如,时间、金额、币种等;“bizType”、“subBizType”、“extBizType”、“sumSubtype”表示不同的业务维度,也可以理解为不同类型的业务数据,例如,以金融业务为例,业务维度可以包括充值、提现、退款、转账等。

在一些实施例中,处理设备可以根据衍生指标中所配置的函数关系确定所述原始指标。可以理解,函数关系是用于对生成报表的原始数据进行逻辑处理的函数信息的表示,而在函数关系中包含了与原始数据对应的指标名,因此根据该指标名在报表配置的原始指标中进行查询,即可确定所述原始指标。

例如,仍然参见图6,在衍生指标620的第一个花括号内的字段中,衍生指标中配置的函数关系为"group(Amount,extBizType)",在该函数关系中包括了用于查询的指标名称“Amount”,则可以根据该指标名称在原始指标630的字段中查询到对应的“alias:"Amount"”字段,进而将该名称下的对应字段所表示的指标确定为与所述衍生指标对应的原始指标。

步骤208,基于所述衍生指标和所述原始指标,确定用于生成报表的目标报表数据,以及基于所述目标报表数据自动生成报表。在一些实施例中,步骤208可以由第三确定模块540执行。

目标报表数据是指最终用于生成报表的数据。

在一些实施例中,处理设备可以根据原始指标中字段进行查询,获取用于生成报表的原始报表数据项。进一步地,在获取到原始报表数据项后,根据所述衍生指标中的函数关系,对原始报表数据项的数据进行逻辑处理,得到所述用于生成报表的目标报表数据。关于获取用于生成报表的原始报表数据项以及确定目标报表数据的更多细节可以参见图3及其相关描述,此处不再赘述。

在说明书实施例中,在接收到报表请求后,通过从数据库或存储设备中加载预先设置的报表配置的方式来生成报表,在加载报表配置后,可以根据报表配置中的各个指标之间的对应关系,获取到用于生成报表的原始数据,以及根据衍生指标中的函数关系对原始数据进行逻辑处理,得到用于生成报表的目标报表数据,将目标报表数据返回给发送报表请求的前端后,即可生成报表。其可以通过在报表配置中对各个指标灵活设置,生成不同类型的报表。开发人员通过对报表配置进行配置,设计报表配置化方案提高报表开发效率,由原来的编码开发变成了纯配置,效率由多天提升到小时级,有效地提高了报表开发的效率。

图3是根据本说明书一些实施例所示的确定目标报表数据的示例性流程图。在一些实施例中,流程300可以由处理设备(例如,服务器110)执行。例如,流程300可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程300。在一些实施例中,流程300可以由第三确定模块540执行,流程300可以包括以下操作。

步骤302,基于所述原始指标,获取原始报表数据项。

关于原始指标的更多细节,可以参见步骤208的描述,此处不再赘述。

原始报表数据项是指未经过逻辑处理的原始数据的集合。在一些实施例中,处理设备可以根据原始指标中的字段中的指标名,确定与衍生指标中的函数关系所需要的数据对应的数据项,并基于该数据项,获取得到所述原始报表数据项。例如,参见图6和图7,图7是根据本说明书一些实施例所示的用于生成报表的数据表的示例性示意图。仍然沿用上述示例,在确定了原始指标后,则可以根据原始指标中要查询的数据源名称进行查询数据,例如,以"source":"ReportQuota"表示数据的查询地址查询到的数据为图7中所示的数据表,该数据表中的每一列的数据都可以认为是一项原始报表数据项。则根据函数关系"group(Amount,extBizType)"可以得知,该函数关系中所需要使用为字段Amount的指标中的extBizType项下的数据,根据Amount和extBizType到原始指标中查询到对应的字段,首先可以查询到"alias":"Amount",然后可以查询到业务维度"extBizType":"_notNull",_notNull表示该项的值不能为空,可以是其他任意值,例如,1、2、7等。进一步地,根据原始指标630中的数据查询地址,获取得到相应的数据,比如,到图7所示的数据表中查询得到extBizType业务维度下的数据为1、2、3、4。

在一些实施例中,参见图6,在报表配置还可以配置获取的原始报表数据对应的时间类型,例如,参见图6报表配置的顶部的"timeliness",可以表示获取的数据的时间级别,例如,1d表示某一天的数据、5m表示5分钟内的数据。

在一些实施例中,所述原始报表数据项中的数据可以来自于各种数据源,例如,线上数据源、线下数据源、手工数据源、指标数据源等。处理设备可以从数据库或存储设备中读取得到所述原始报表数据项中的数据。

步骤304,基于所述衍生指标中配置的与所述原始指标相关联的函数关系,对所述原始报表数据项进行处理,确定所述目标报表数据。

在一些实施中,对所述原始报表数据项进行处理可以是指按照衍生指标中的函数关系,对该数据项下的所有数据进行处理。

在一些实施例中,与原始指标相关联的函数关系至少可以包括求和函数、求差函数、百分比函数、分组函数、重命名函数、同比函数和累计函数。仅作为示例,在报表配置中可以用以下方式表示上述函数关系:求和函数可以表示为add(a,b,c),表示对指标a、b、c进行求和运算;百分比函数可以表示为“divide(a,b,c)”,表示用指标a除以指标b,“c”表示数据类型,例如,布尔类型,并分别表示不同的含义,比如当“c”的值为“true”时表示计算百分比,当“c”的值为“false”时表示不计算百分比;分组函数可以表示为group(a,b),“a”为待分组的指标名,“b”为分组的类型;重命名函数可以表示为rename(a,b),表示用指标b的名称替换指标a的名称;同比函数可以表示为yoy(a,b,c),表示在周期指标c内计算指标a相对于指标b的同比;累计函数可以表示为acum(a,b,c),表示对指标a、b、c按时间累计后进行累加运算。

需要说明的是,以上对于函数关系的表示仅仅出于示例的目的,在其他实施例中可以用其他的方式进行表示,本说明书对此不作限定。

在本实施例中,通过配置化报表的设计方式,可以直接获取到用于生成报表的目标报表数据,将对生成报表的原始数据的中间转化处理的逻辑转化到了报表配置的设置中,可以根据前端的参数动态加载指标、解析以及执行,然后产出用于生成报表的数据结果。

图4是根据本说明书另一些实施例所示的确定目标报表数据的示例性流程图。在一些实施例中,流程400可以由处理设备(例如,服务器110)执行。例如,流程400可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程400。在一些实施例中,流程400可以由第三确定模块540执行,流程400可以包括以下操作。

步骤402,基于所述函数关系对所述原始报表数据项进行处理,确定报表数据结果。

报表数据结果是指按照所述函数关系的处理逻辑对原始报表数据项下的数据进行处理后得到的结果。例如,对原始报表数据项的数据的求和结果、累计结果等。

在一些实施例中,处理设备(第三确定模块540)可以基于函数关系对原始报表数据项下的数据进行计算或处理,得到所述报表数据结果。关于函数关系和对数据项进行处理的更多细节可以参见图3的相关描述,此处不再赘述。

步骤404,判断所述报表数据结果中是否存在数据缺失。

在一些实施例中,处理设备可以通过遍历或分析报表数据结果的方式来判断是否存在数据缺失。例如,报表数据结果中包括2020年1月、2月、3月、5月以及6月的数据,则处理设备通过遍历各个数据,可以判断出报表数据结果中缺失了2020年4月的数据。再例如,报表数据结果中包括2020年第1季度、第3季度和第4季度的数据,则处理设备可以判断出报表数据结果中缺失了2020年第2季度的数据。

在判断出存在数据缺失后,则可以执行步骤406,若判断出不存在数据缺失,则可以直接将该报表数据结果作为目标报表数据。

步骤406,生成所述数据缺失对应的补充时间点,将所述补充时间点增加至所述报表数据结果。

在一些实施例中,报表中可能包括图形,例如,折线图、柱状图等,若用于生成报表的报表数据中存在数据缺失,则最终生成的报表中的图形可能是不完整的,例如,折线图中的线条是不连续的。因此,可以通过判断报表数据结果中是否存在数据缺失,并在确定有数据缺失的情况下,生成缺失数据对应的补充时间点,并将该补充时间点增加到报表数据结果中,以使最终生成的图形更加完整。

补充时间点是指对缺失数据所对应的时间的补充。例如,沿用上述步骤404中的示例,报表数据结果中缺失了2020年4月的数据,则可以将对应的2020年4月这个时间点增加到报表数据结果中,以此在最终得到的报表的折线图形中,不会从3月跳跃到5月,线条将是连续的。

进一步地,在一些实施例中,若通过其他方式(例如,从其他数据源获取或人工补充预测数据等)确定了缺失数据,则还可以对缺失数据进行补充,使得最终生成的报表更加完善。

步骤408,基于增加所述补充时间点后的报表数据结果,确定所述目标报表数据。

在一些实施例中,处理设备可以直接将增加补充时间点后的报表数据结果作为所述目标报表数据。关于目标报表数据的更多描述,可以参见图2和图3的相关描述。

在一些实施例中,处理设备还可以对报表数据结果进行数据结构简化处理,并将简化处理后的报表数据结果作为目标报表数据。

数据结构简化处理可以是对数据进行归类、组合和/或提取。例如,报表数据结果包括2020年1月~3月来自4个不同商家对某个商品的销售收入数据。由于该销售收入数据分别来自于不同的商家,各个商家的销售收入数据中包括了时间、金额、商品类型。示例性地,以字母A、B、C、D分别表示4个不同的销售渠道;S表示销售金额。则对于商家A的报表数据结果为(A

图5是根据本说明书的一些实施例所示的根据报表配置自动生成报表的系统的模块图。如图5所示,系统500可以包括加载模块510、第一确定模块520、第二确定模块530和第三确定模块540。

加载模块510可以用于在接收到报表生成请求后,加载与报表生成请求相关联的报表配置。

在一些实施例中,可以预先将配置的报表配置存储在数据库或存储设备中,在接收到报表生成请求后,加载模块510可以通过从数据库或存储设备中读取所述报表配置的方式完成加载。

第一确定模块520可以用于基于报表生成请求和报表配置,确定衍生指标;其中,在衍生指标中配置有与原始指标相关联的函数关系。

在一些实施例中,第一确定模块520还可以基于所述报表生成请求,确定报表配置中的报表参数指标;基于所述报表参数指标,确定衍生指标。原始指标是指与报表原始数据相关联的数据项。原始指标可以用于获取根据衍生指标中的函数关系进行逻辑处理的原始数据项。衍生指标是指对原始指标的数据项对应的数据进行逻辑处理后的数据项的字段表示。

第二确定模块530可以用于基于衍生指标以及所述函数关系,确定原始指标。

在一些实施例中,第二确定模块530可以根据衍生指标中所配置的函数关系确定所述原始指标。函数关系是用于对生成报表的原始数据进行逻辑处理的函数信息的表示,而在函数关系中包含了与原始数据对应的指标名,因此根据该指标名在报表配置的原始指标中进行查询,即可确定所述原始指标。

第三确定模块540可以用于基于衍生指标和原始指标,确定用于生成报表的目标报表数据,以及基于所述目标报表数据自动生成报表。

在一些实施例中,第三确定模块540可以根据原始指标中字段进行查询,获取用于生成报表的原始报表数据项。进一步地,在获取到原始报表数据项后,根据所述衍生指标中的函数关系,对原始报表数据项的数据进行逻辑处理,得到所述用于生成报表的目标报表数据。

在一些实施例中,第三确定模块540还可以用于基于原始指标,获取原始报表数据项;基于衍生指标中配置的与原始指标相关联的函数关系,对原始报表数据项进行处理,确定目标报表数据。在一些实施例中,第三确定模块540还可以用于基于函数关系对原始报表数据项进行处理,确定报表数据结果;判断报表数据结果中是否存在数据缺失;若是,则生成所述数据缺失对应的补充时间点,将补充时间点增加至报表数据结果;基于增加补充时间点后的报表数据结果,确定目标报表数据。在一些实施例中,第三确定模块540还可以用于对报表数据结果进行数据结构简化处理,确定目标报表数据。

关于图5所示的系统的各个模块的更多描述,可以参见本说明书的流程图部分,例如,图2至图4的相关描述,此处不再赘述。

应当理解,图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于根据报表配置自动生成报表的系统500及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图5中披露的加载模块510、第一确定模块520、第二确定模块530、第三确定模块540可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,加载模块510和第一确定模块520可以是两个模块,也可以是一个模块同时具有获取和调整功能。根据报表配置自动生成报表的系统500中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例还提供了一种根据报表配置自动生成报表的装置,包括处理器,所述处理器用于执行根据报表配置自动生成报表的方法。

本说明书实施例还提供了一种计算机可读存储介质。所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机可以执行所述根据报表配置自动生成报表的方法。

本说明书实施例可能带来的有益效果包括但不限于:可以通过在报表配置中对各个指标灵活设置,生成不同类型的报表,一个报表配置对应多种报表,减少了报表生成开发的工作量。开发人员通过对报表配置进行配置,即可实现不进行代码开发完成报表开发,节约开发人员的时间成本,提高报表开发的效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

相关技术
  • 一种根据报表配置自动生成报表的方法和系统
  • 一种基于统计报表自动生成的自动电压控制参数配置方法
技术分类

06120112193673