数据汇总方法、电子装置及计算机可读存储介质与流程

文档序号:18834810发布日期:2019-10-09 04:50阅读:149来源:国知局
数据汇总方法、电子装置及计算机可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据汇总方法、电子装置及计算机可读存储介质。



背景技术:

随着大数据的发展与运用,数据统计技术也随之发展。在报表、分析类系统中,经常需要做一些汇总报表,然而待汇总的数据往往是零散的,且某些维度之间可能不具有层次关系,传统的汇总方式是逐一将具有相同维度的数据进行筛选、整理、分类,然后再与其他维度的数据整合及汇总,数据量庞大时会导致汇总效率低。



技术实现要素:

鉴于以上内容,有必要提供一种数据汇总方法,旨在提升汇总效率。

本发明提供的数据汇总方法,包括:

第一生成步骤:根据用户设置的待汇总的维度字段名称、指标字段名称从预先确定的源表中筛选待汇总数据,将所述待汇总数据填入用户预先设置的表单模板中生成第一表单;

构造步骤:按照预设规则确定各待汇总的维度字段的级别,根据所述第一表单及各待汇总的维度字段的级别构造维度树;

标识步骤:从所述维度树的叶子节点开始遍历所述维度树的每个节点,对子节点数量大于预设数量的节点添加第一标识,对具有所述第一标识的节点中需执行合计计算的节点添加第二标识;

第一计算步骤:计算每个仅具有第一标识的节点对应的维度字段在第二表单中的第一列高;

第二计算步骤:对每个具有第二标识的节点对应的各个指标值执行合计计算,并为每个具有第二标识的节点添加一个合计子节点,将合计计算得到的数值存储至该合计子节点,计算每个具有第二标识的节点对应的维度字段在第二表单中的第二列高和该节点的合计子节点对应的合计字段在第二表单中的行宽;

第二生成步骤:根据所述表单模板、所述第一列高、所述第二列高及所述行宽将维度树中的数据导入所述第二表单,生成目标汇总表单。

可选的,所述预设规则为待汇总的维度字段在表单模板中的列索引越小,其级别越高。

可选的,所述根据第一表单及各待汇总的维度字段的级别构造维度树包括:

a1、根据各待汇总的维度字段的级别,确定其对应的节点在维度树中的层级;

a2、根据各节点的层级确定第一表单的第一条数据的节点路径,根据所述节点路径构造维度树的第一条分支,并输入对应的指标值;

a3、读取第一表单的下一条数据,判断所述下一条数据的节点路径是否与维度树的某一分支对应的路径相同,若所述下一条数据的节点路径与维度树的所有分支对应的路径都不相同,则根据所述下一条数据的节点路径构造维度树的另一条分支,并输入对应的指标值;

a4、若所述下一条数据的节点路径与维度树的某一分支对应的路径相同,则将所述下一条数据的指标值与所述分支的指标值做加总计算并将加总计算的结果更新至所述分支对应的指标中;

a5、重复执行步骤a3-a4,直至第一表单的所有数据都存储至所述维度树。

可选的,所述第一列高的计算公式为:其中,hhr为仅具有第一标识的第r个节点对应的维度字段在第二表单中的第一列高,qqm为仅具有第一标识的第r个节点的第m个子节点对应的维度字段在第二表单中的第一列高,p为仅具有第一标识的第r个节点的子节点的数量,r、m、p皆为正整数;

所述第二列高的计算公式为:其中,hi为具有第二标识的第i个节点对应的维度字段在第二表单中的第二列高,qn为具有第二标识的第i个节点的第n个子节点对应的维度字段在第二表单中的第二列高,k为具有第二标识的第i个节点的子节点的数量,i、n、k皆为正整数;

所述行宽的计算公式为:wj=lz1-lj-1,其中,wj为具有第二标识的第j个节点的合计子节点对应的合计字段在第二表单中的行宽,lz1为第二表单中第一个指标字段的列索引,lj为具有第二标识的第j个节点对应的维度字段在第二表单中的列索引,j为正整数。

可选的,该方法还包括:

根据用户预先设置的数据格式信息对所述目标汇总表单进行调整,生成调整后的目标汇总表单。

为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据汇总程序,所述数据汇总程序被所述处理器执行时实现如下步骤:

第一生成步骤:根据用户设置的待汇总的维度字段名称、指标字段名称从预先确定的源表中筛选待汇总数据,将所述待汇总数据填入用户预先设置的表单模板中生成第一表单;

构造步骤:按照预设规则确定各待汇总的维度字段的级别,根据所述第一表单及各待汇总的维度字段的级别构造维度树;

标识步骤:从所述维度树的叶子节点开始遍历所述维度树的每个节点,对子节点数量大于预设数量的节点添加第一标识,对具有所述第一标识的节点中需执行合计计算的节点添加第二标识;

第一计算步骤:计算每个仅具有第一标识的节点对应的维度字段在第二表单中的第一列高;

第二计算步骤:对每个具有第二标识的节点对应的各个指标值执行合计计算,并为每个具有第二标识的节点添加一个合计子节点,将合计计算得到的数值存储至该合计子节点,计算每个具有第二标识的节点对应的维度字段在第二表单中的第二列高和该节点的合计子节点对应的合计字段在第二表单中的行宽;

第二生成步骤:根据所述表单模板、所述第一列高、所述第二列高及所述行宽将维度树中的数据导入所述第二表单,生成目标汇总表单。

可选的,所述根据第一表单及各待汇总的维度字段的级别构造维度树包括:

a1、根据各待汇总的维度字段的级别,确定其对应的节点在维度树中的层级;

a2、根据各节点的层级确定第一表单的第一条数据的节点路径,根据所述节点路径构造维度树的第一条分支,并输入对应的指标值;

a3、读取第一表单的下一条数据,判断所述下一条数据的节点路径是否与维度树的某一分支对应的路径相同,若所述下一条数据的节点路径与维度树的所有分支对应的路径都不相同,则根据所述下一条数据的节点路径构造维度树的另一条分支,并输入对应的指标值;

a4、若所述下一条数据的节点路径与维度树的某一分支对应的路径相同,则将所述下一条数据的指标值与所述分支的指标值做加总计算并将加总计算的结果更新至所述分支对应的指标中;

a5、重复执行步骤a3-a4,直至第一表单的所有数据都存储至所述维度树。

可选的,所述第一列高的计算公式为:其中,hhr为仅具有第一标识的第r个节点对应的维度字段在第二表单中的第一列高,qqm为仅具有第一标识的第r个节点的第m个子节点对应的维度字段在第二表单中的第一列高,p为仅具有第一标识的第r个节点的子节点的数量,r、m、p皆为正整数;

所述第二列高的计算公式为:其中,hi为具有第二标识的第i个节点对应的维度字段在第二表单中的第二列高,qn为具有第二标识的第i个节点的第n个子节点对应的维度字段在第二表单中的第二列高,k为具有第二标识的第i个节点的子节点的数量,i、n、k皆为正整数;

所述行宽的计算公式为:wj=lz1-lj-1,其中,wj为具有第二标识的第j个节点的合计子节点对应的合计字段在第二表单中的行宽,lz1为第二表单中第一个指标字段的列索引,lj为具有第二标识的第j个节点对应的维度字段在第二表单中的列索引,j为正整数。

可选的,所述数据汇总程序被所述处理器执行时还实现如下步骤:

根据用户预先设置的数据格式信息对所述目标汇总表单进行调整,生成调整后的目标汇总表单。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据汇总程序,所述数据汇总程序可被一个或者多个处理器执行,以实现上述数据汇总方法的任意步骤。

相较现有技术,本发明通过筛选待汇总数据,将待汇总数据填入表单模块,生成第一表单,根据第一表单的每条数据对应的节点路径构造维度树,以实现数据按照节点路径自动分组,并对维度树中的数据进行汇总和合计,将汇总和合计得到的数据填入第二表单,生成目标汇总表单。本发明实现了数据按照维度树的节点路径自动分组,提升了汇总效率。

附图说明

图1为本发明电子装置一实施例的示意图;

图2为本发明维度树的构造过程一实施例的示意图;

图3为图1中的数据汇总程序一实施例的程序模块图;

图4为本发明数据汇总方法一实施例的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

如图1所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有数据汇总程序10,所述数据汇总程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及数据汇总程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的数据汇总程序10的代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行数据汇总程序10等。

网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。

可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。

在本发明的一实施例中,所述数据汇总程序10被所述处理器12执行时实现如下步骤:

第一生成步骤:根据用户设置的待汇总的维度字段名称、指标字段名称从预先确定的源表中筛选待汇总数据,将所述待汇总数据填入用户预先设置的表单模板中生成第一表单。

在本发明的一实施例中,电子装置1接收到用户携带源表信息的汇总请求后,向用户展示表单模块设置界面,用户可在所述表单模板设置界面设置待汇总的维度字段名称及其在表单模板中的位置、待汇总的指标字段名称及其在表单模块中的位置、数据格式信息。

例如,表单模块可以如下表1所示:

表1

表单模板的第一行是待汇总的维度字段名称、指标字段名称及各自的栏位信息。例如,若源表中包含公司、分公司、部门、渠道、时间段及手机品牌共6个维度,包含销售额、退货数量及销售达标率共3个指标,若需要对公司1的分公司、渠道、时间段共3个维度和销售额、退货数量共2个指标做汇总,则在表单模板的第一行中将对应维度名称和指标名称填入,在本实施例中,因为是对公司1的数据做汇总分析,故将公司1填入固定列所在的栏位,将分公司、渠道、时间段分别填入维度1、维度2、维度3所在的栏位,将销售额、退货数量分别填入指标1、指标2所在的栏位,如果需要新增“预估返修率”这个指标,可将“预估返修率”填入指标3所在的栏位。

表单模块的第二行是数据格式信息,所述数据格式信息包括待汇总的维度字段及指标字段在表单模板中的数据属性信息、数值格式信息、数据对齐方式信息、指标值的计算公式信息。

在本发明的一实施例中,所述数据格式信息的表达式可以描述为:branch_name{merge:false,point:3,percent:true,align:left}。

其中,branch_name为维度字段或指标字段的名称,例如,分公司1、分公司2、销售额等。

merge为数据的属性,所述属性包括展示和不展示,merge:ture代表展示,merge:false代表不展示。

point为数值型数据的小数位数,例如,point:3代表需要保留三位小数。

percent为数值型数据的格式,percent:true表示该数据用百分数表示,percent:false表示该数据不用百分数表示。

align为数据的对齐方式,align:left表示左对齐,align:middle表示中间对齐,align:right表示右对齐。

同时,也可在表单模板中设置指标值的计算公式,例如,设置预估返修率的计算公式为:预估返修率=(退货数量-1)/销售额。

电子装置1读取表1所示的表单模板信息,将待汇总数据从源表筛出,填入表单模板中生成第一表单。例如,生成的第一表单如下表2所示:

表2

构造步骤:按照预设规则确定各待汇总的维度字段的级别,根据所述第一表单及各待汇总的维度字段的级别构造维度树。

在本发明的一实施例中,所述预设规则为待汇总的维度字段在表单模板中的列索引越小,其级别越高。

例如,表单模板中,公司1位于第一列,分公司位于第二列,渠道位于第四列,时间段位于第五列,则公司1的级别为最高级即第一级,分公司为第二级,渠道为第三级,时间段为第四级。

在本发明的一实施例中,所述根据第一表单及各待汇总的维度字段的级别构造维度树包括:

a1、根据各待汇总的维度字段的级别,确定其对应的节点在维度树中的层级。

例如,根据各待汇总的维度字段的级别,可确定公司1对应的节点位于维度树的第一层,即公司1对应根节点,分公司对应的节点位于维度树的第二层,渠道对应的节点位于维度树的第三层,时间段对应的节点位于维度树的第四层,本实施例中,因时间段对应的节点位于最末层,故时间段对应的节点为叶子节点。

a2、根据各节点的层级确定第一表单的第一条数据的节点路径,根据所述节点路径构造维度树的第一条分支,并输入对应的指标值。

第一表单的第一条数据的节点路径为:公司1->分公司1->渠道1->时间段1。如图2所示,为本发明维度树的构造过程一实施例的示意图,a2步骤根据第一表单的第一条数据的节点路径构造维度树的第一条枝干。

a3、读取第一表单的下一条数据,判断所述下一条数据的节点路径是否与维度树的某一分支对应的路径相同,若所述下一条数据的节点路径与维度树的所有分支对应的路径都不相同,则根据所述下一条数据的节点路径构造维度树的另一条分支,并输入对应的指标值。

第一表单的第二条数据的节点路径为:公司1->分公司1->渠道1->时间段2,与第一条数据的节点路径不同,则根据第二条数据的节点路径构造维度树的第二条枝干,因前三层节点(公司1、分公司1、渠道1)相同,故仅在维度树的第四层构造一个分枝干“时间段2”,a3步骤根据第一表单的第二条数据的节点路径构造维度树的第二条分支。

a4、若所述下一条数据的节点路径与维度树的某一分支对应的路径相同,则将所述下一条数据的指标值与所述分支的指标值做加总计算并将加总计算的结果更新至所述分支对应的指标中。

例如,第一表单的第三条数据的节点路径为:公司1->分公司1->渠道1->时间段1,与第一条数据的节点路径相同,故对应的指标值需要汇总,销售额=11000(第一条数据)+31000(第三条数据)=42000,退货数量=12(第一条数据)+32(第三条数据)=44。

a5、重复执行步骤a3-a4,直至第一表单的所有数据都存储至所述维度树。

标识步骤:从所述维度树的叶子节点开始遍历所述维度树的每个节点,对子节点数量大于预设数量的节点添加第一标识,对具有所述第一标识的节点中需执行合计计算的节点添加第二标识。

在本实施例中,需先筛选出孩子节点数量大于预设数量(例如2个)的节点,对其添加第一标识,然后根据用户需要对其中需要执行合计计算的节点添加第二标识。

第一计算步骤:计算每个仅具有第一标识的节点对应的维度字段在第二表单中的第一列高。

所述第二表单的空白表单是根据表单模板创建的。

在本发明的一实施例中,所述第一列高的计算公式为:其中,hhr为仅具有第一标识的第r个节点对应的维度字段在第二表单中的第一列高,qqm为仅具有第一标识的第r个节点的第m个子节点对应的维度字段在第二表单中的第一列高,p为仅具有第一标识的第r个节点的子节点的数量,r、m、p皆为正整数。

第二计算步骤:对每个具有第二标识的节点对应的各个指标值执行合计计算,并为每个具有第二标识的节点添加一个合计子节点,将合计计算得到的数值存储至该合计子节点,计算每个具有第二标识的节点对应的维度字段在第二表单中的第二列高和该节点的合计子节点对应的合计字段在第二表单中的行宽。

对具有第二标识的节点对应的各个指标值进行加总的同时,需在维度树中该节点下添加一个合计子节点(默认该合计子节点位于其它子节点的后面),将加总求和得到的数值存储至该合计子节点的各个指标中。

假如需要对渠道1执行合计计算,渠道1包括时间段1和时间段2两个子节点,则对时间段1和时间段2的各个指标值做加总求和,得到销售额=42000(时间段1)+21000(时间段2)=63000,退货数量=44(时间段1)+22(时间段2)=66,同时添加一个合计子节点,并将63000、44分别存储至该合计子节点的两个指标(销售额、退货数量)中。

在本发明的一实施例中,所述第二列高的计算公式为:其中,hi为具有第二标识的第i个节点对应的维度字段在第二表单中的第二列高,qn为具有第二标识的第i个节点的第n个子节点对应的维度字段在第二表单中的第二列高,k为具有第二标识的第i个节点的子节点的数量,i、n、k皆为正整数。

例如,渠道1对应的节点包括时间段1、时间段2、合计三个子节点,时间段1、时间段2、合计在第二表单中的列高都为1,则渠道1在第二表单中的列高为3。

所述行宽的计算公式为:wj=lz1-lj-1,其中,wj为具有第二标识的第j个节点的合计子节点对应的合计字段在第二表单中的行宽,lz1为第二表单中第一个指标字段的列索引,lj为具有第二标识的第j个节点对应的维度字段在第二表单中的列索引,j为正整数。

例如,第二表单中,销售额所在列索引为5,渠道1所在的列索引为3,则渠道1的合计字段的行宽为5-3-1=1。

第二生成步骤:根据所述表单模板、所述第一列高、所述第二列高及所述行宽将维度树中的数据导入所述第二表单,生成目标汇总表单。

计算得到第一列高、第二列高、行宽后,将维度树中的数据导入第二表单,生成目标汇总表单。

在本发明的一实施例中,所述数据汇总程序10被所述处理器12执行时还实现如下步骤:

根据数据格式信息对目标汇总表单的属性、数值格式、对齐方式进行调整,同时对含计算公式的指标值进行公式计算,生成调整后的目标汇总表单。

例如,根据表单模板的第二行所示的数据格式信息,可确定分公司所在列需左对齐,销售额所在列需不展示,预估返修率的计算公式为预估返修率=(退货数量-1)/销售额,预估返修率的数值格式为百分数,则设置完成后得到的表格如下表3所示:

表3

由上述实施例可知,本发明提出的电子装置1,首先筛选待汇总数据,将待汇总数据填入表单模块,生成第一表单,根据第一表单的每条数据对应的节点路径构造维度树,以实现数据按照节点路径自动分组,并对维度树中的数据进行汇总和合计,将汇总和合计得到的数据填入第二表单,生成目标汇总表单。本发明实现了数据按照维度树的节点路径自动分组,提升了汇总效率。

如图3所示,为图1中的数据汇总程序10一实施例的程序模块图。

在本发明的一个实施例中,数据汇总程序10包括第一生成模块110、构造模块120、标识模块130、计算模块140及第二生成模块150。

所述第一生成模块110,用于根据用户设置的待汇总的维度字段名称、指标字段名称从预先确定的源表中筛选待汇总数据,将所述待汇总数据填入用户预先设置的表单模板中生成第一表单。

所述构造模块120,用于按照预设规则确定各待汇总的维度字段的级别,根据所述第一表单及各待汇总的维度字段的级别构造维度树。

所述标识模块130,用于从所述维度树的叶子节点开始遍历所述维度树的每个节点,对子节点数量大于预设数量的节点添加第一标识,对具有所述第一标识的节点中需执行合计计算的节点添加第二标识。

所述计算模块140,用于计算每个仅具有第一标识的节点对应的维度字段在第二表单中的第一列高;对每个具有第二标识的节点对应的各个指标值执行合计计算,并为每个具有第二标识的节点添加一个合计子节点,将合计计算得到的数值存储至该合计子节点,计算每个具有第二标识的节点对应的维度字段在第二表单中的第二列高和该节点的合计子节点对应的合计字段在第二表单中的行宽。

所述第二生成模块150,用于根据所述表单模板、所述第一列高、所述第二列高及所述行宽将维度树中的数据导入所述第二表单,生成目标汇总表单。

如图4所示,为本发明数据汇总方法一实施例的流程图,该方法包括步骤s1-s6。

s1、根据用户设置的待汇总的维度字段名称、指标字段名称从预先确定的源表中筛选待汇总数据,将所述待汇总数据填入表单模板中生成第一表单。

在本发明的一实施例中,电子装置1接收到用户携带源表信息的汇总请求后,向用户展示表单模块设置界面,用户可在所述表单模板设置界面设置待汇总的维度字段名称及其在表单模板中的位置、待汇总的指标字段名称及其在表单模块中的位置、数据格式信息。

例如,表单模块可以如上表1所示。

表单模板的第一行是待汇总的维度字段名称、指标字段名称及各自的栏位信息。例如,若源表中包含公司、分公司、部门、渠道、时间段及手机品牌共6个维度,包含销售额、退货数量及销售达标率共3个指标,若需要对公司1的分公司、渠道、时间段共3个维度和销售额、退货数量共2个指标做汇总,则在表单模板的第一行中将对应维度名称和指标名称填入,在本实施例中,因为是对公司1的数据做汇总分析,故将公司1填入固定列所在的栏位,将分公司、渠道、时间段分别填入维度1、维度2、维度3所在的栏位,将销售额、退货数量分别填入指标1、指标2所在的栏位,如果需要新增“预估返修率”这个指标,可将“预估返修率”填入指标3所在的栏位。

表单模块的第二行是数据格式信息,所述数据格式信息包括待汇总的维度字段及指标字段在表单模板中的数据属性信息、数值格式信息、数据对齐方式信息、指标值的计算公式信息。

在本发明的一实施例中,所述数据格式信息的表达式可以描述为:branch_name{merge:false,point:3,percent:true,align:left}。

其中,branch_name为维度字段或指标字段的名称,例如,分公司1、分公司2、销售额等。

merge为数据的属性,所述属性包括展示和不展示,merge:ture代表展示,merge:false代表不展示。

point为数值型数据的小数位数,例如,point:3代表需要保留三位小数。

percent为数值型数据的格式,percent:true表示该数据用百分数表示,percent:false表示该数据不用百分数表示。

align为数据的对齐方式,align:left表示左对齐,align:middle表示中间对齐,align:right表示右对齐。

同时,也可在表单模板中设置指标值的计算公式,例如,设置预估返修率的计算公式为:预估返修率=(退货数量-1)/销售额。

电子装置1读取表1所示的表单模板信息,将待汇总数据从源表筛出,填入表单模板中生成第一表单。例如,生成的第一表单如上表2所示。

s2、按照预设规则确定各待汇总的维度字段的级别,根据所述第一表单及各待汇总的维度字段的级别构造维度树。

在本发明的一实施例中,所述预设规则为待汇总的维度字段在表单模板中的列索引越小,其级别越高。

例如,表单模板中,公司1位于第一列,分公司位于第二列,渠道位于第四列,时间段位于第五列,则公司1的级别为最高级即第一级,分公司为第二级,渠道为第三级,时间段为第四级。

在本发明的一实施例中,所述根据第一表单及各待汇总的维度字段的级别构造维度树包括:

a1、根据各待汇总的维度字段的级别,确定其对应的节点在维度树中的层级。

例如,根据各待汇总的维度字段的级别,可确定公司1对应的节点位于维度树的第一层,即公司1对应根节点,分公司对应的节点位于维度树的第二层,渠道对应的节点位于维度树的第三层,时间段对应的节点位于维度树的第四层,本实施例中,因时间段对应的节点位于最末层,故时间段对应的节点为叶子节点。

a2、根据各节点的层级确定第一表单的第一条数据的节点路径,根据所述节点路径构造维度树的第一条分支,并输入对应的指标值。

第一表单的第一条数据的节点路径为:公司1->分公司1->渠道1->时间段1。如图2所示,为本发明维度树的构造过程一实施例的示意图,a2步骤根据第一表单的第一条数据的节点路径构造维度树的第一条枝干。

a3、读取第一表单的下一条数据,判断所述下一条数据的节点路径是否与维度树的某一分支对应的路径相同,若所述下一条数据的节点路径与维度树的所有分支对应的路径都不相同,则根据所述下一条数据的节点路径构造维度树的另一条分支,并输入对应的指标值。

第一表单的第二条数据的节点路径为:公司1->分公司1->渠道1->时间段2,与第一条数据的节点路径不同,则根据第二条数据的节点路径构造维度树的第二条枝干,因前三层节点(公司1、分公司1、渠道1)相同,故仅在维度树的第四层构造一个分枝干“时间段2”,a3步骤根据第一表单的第二条数据的节点路径构造维度树的第二条分支。

a4、若所述下一条数据的节点路径与维度树的某一分支对应的路径相同,则将所述下一条数据的指标值与所述分支的指标值做加总计算并将加总计算的结果更新至所述分支对应的指标中。

例如,第一表单的第三条数据的节点路径为:公司1->分公司1->渠道1->时间段1,与第一条数据的节点路径相同,故对应的指标值需要汇总,销售额=11000(第一条数据)+31000(第三条数据)=42000,退货数量=12(第一条数据)+32(第三条数据)=44。

a5、重复执行步骤a3-a4,直至第一表单的所有数据都存储至所述维度树。

s3、从维度树的叶子节点开始遍历维度树的每个节点,对子节点数量大于预设数量的节点添加第一标识,对具有所述第一标识的节点中需执行合计计算的节点添加第二标识。

在本实施例中,需先筛选出孩子节点数量大于预设数量(例如2个)的节点,对其添加第一标识,然后根据用户需要对其中需要执行合计计算的节点添加第二标识。

s4、计算每个仅具有第一标识的节点对应的维度字段在第二表单中的第一列高。

所述第二表单的空白表单是根据表单模板创建的。

在本发明的一实施例中,所述第一列高的计算公式为:其中,hhr为仅具有第一标识的第r个节点对应的维度字段在第二表单中的第一列高,qqm为仅具有第一标识的第r个节点的第m个子节点对应的维度字段在第二表单中的第一列高,p为仅具有第一标识的第r个节点的子节点的数量,r、m、p皆为正整数。

s5、对每个具有第二标识的节点对应的各个指标值执行合计计算,并为每个具有第二标识的节点添加一个合计子节点,将合计计算得到的数值存储至该合计子节点,计算每个具有第二标识的节点对应的维度字段在第二表单中的第二列高和该节点的合计子节点对应的合计字段在第二表单中的行宽。

对具有第二标识的节点对应的各个指标值进行加总的同时,需在维度树中该节点下添加一个合计子节点(默认该合计子节点位于其它子节点的后面),将加总求和得到的数值存储至该合计子节点的各个指标中。

假如需要对渠道1执行合计计算,渠道1包括时间段1和时间段2两个子节点,则对时间段1和时间段2的各个指标值做加总求和,得到销售额=42000(时间段1)+21000(时间段2)=63000,退货数量=44(时间段1)+22(时间段2)=66,同时添加一个合计子节点,并将63000、44分别存储至该合计子节点的两个指标(销售额、退货数量)中。

在本发明的一实施例中,所述第二列高的计算公式为:其中,hi为具有第二标识的第i个节点对应的维度字段在第二表单中的第二列高,qn为具有第二标识的第i个节点的第n个子节点对应的维度字段在第二表单中的第二列高,k为具有第二标识的第i个节点的子节点的数量,i、n、k皆为正整数。

例如,渠道1对应的节点包括时间段1、时间段2、合计三个子节点,时间段1、时间段2、合计在第二表单中的列高都为1,则渠道1在第二表单中的列高为3。

所述行宽的计算公式为:wj=lz1-lj-1,其中,wj为具有第二标识的第j个节点的合计子节点对应的合计字段在第二表单中的行宽,lz1为第二表单中第一个指标字段的列索引,lj为具有第二标识的第j个节点对应的维度字段在第二表单中的列索引,j为正整数。

例如,第二表单中,销售额所在列索引为5,渠道1所在的列索引为3,则渠道1的合计字段的行宽为5-3-1=1。

s6、根据表单模板、第一列高、第二列高及行宽将维度树中的数据导入第二表单,生成目标汇总表单。

计算得到第一列高、第二列高、行宽后,将维度树中的数据导入第二表单,生成目标汇总表单。

在本发明的一实施例中,所述数据汇总程序10被所述处理器12执行时还实现如下步骤:

根据数据格式信息对目标汇总表单的属性、数值格式、对齐方式进行调整,同时对含计算公式的指标值进行公式计算,生成调整后的目标汇总表单。

例如,根据表单模板的第二行所示的数据格式信息,可确定分公司所在列需左对齐,销售额所在列需不展示,预估返修率的计算公式为预估返修率=(退货数量-1)/销售额,预估返修率的数值格式为百分数,则设置完成后得到的表格如上表3所示。

由上述实施例可知,本发明提出的数据汇总方法,首先筛选待汇总数据,将待汇总数据填入表单模块,生成第一表单,根据第一表单的每条数据对应的节点路径构造维度树,以实现数据按照节点路径自动分组,并对维度树中的数据进行汇总和合计,将汇总和合计得到的数据填入第二表单,生成目标汇总表单。本发明实现了数据按照维度树的节点路径自动分组,提升了汇总效率。

此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括数据汇总程序10,本发明之计算机可读存储介质的具体实施方式与上述数据汇总方法以及电子装置的具体实施方式大致相同,在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1