基于业务元数据的多级表头报表处理方法、装置及设备与流程

文档序号:17442354发布日期:2019-04-17 04:55阅读:185来源:国知局
基于业务元数据的多级表头报表处理方法、装置及设备与流程

本申请涉及数据处理技术领域,尤其是涉及到一种基于业务元数据的多级表头报表处理方法、装置及设备。



背景技术:

随着人工智能化的涌入,多级表头报表的设计与灵活导出问题不断深入探究与应用。因其具有信息显示直观具体、信息归类灵活方便的特点。故在企业资源计划(enterpriseresourceplanning,erp)系统中,多级表头报表在企业客户应用中变得非常常见且需求量非常大。

目前,对于多级表头报表的表头定义方式,不是利用实际的表头元数据项去定义,而是使用报表所用的配置项,根据表头元数据内容在配置项中定义表头内容,并且配置各个表头的配置项关系,再将需要显示的配置项与业务元数据进行关联,进而通过该配置项实现报表的显示。

然而,通过上述这种多级表头报表的数据处理方式,会需要相应存在两套元数据结构(即业务系统和报表系统各自对应一套元数据结构),对于实施和运维的工作量则会大大增加,每一次用户在调整业务元数据时,就必须到对应的报表配置项中进行对应的调整,调整过程非常琐碎且较容易出错,增加了实施维护成本。



技术实现要素:

有鉴于此,本申请提供了一种基于业务元数据的多级表头报表处理方法、装置及设备,主要目的在于解决目前现有的多级表头报表的数据处理方式,对于实施和运维的工作量则会大大增加,进而会提高实施维护成本的问题。

根据本申请的一个方面,提供了一种基于业务元数据的多级表头报表处理方法,该方法包括:

获取多级表头报表对应的业务元数据;

配置所述业务元数据对应的表头元数据项的森林模型,使得所述森林模型中包含树形结构的表头元数据项,且所述树形结构的表头元数据项中的父节点对应所述报表中的父表头,所述树形结构的表头元数据项中的子节点对应所述报表中的子表头;

根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,以及所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中的表头单元格信息,以便按照所述表头单元格信息和所述表头元数据项,确定所述报表的表头信息。

可选的,根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,以及所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中的表头单元格信息,具体包括:

根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并行数信息;

根据所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并列数信息。

可选的,根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并行数信息,具体包括:

若目标节点为无子根节点,则将所述森林模型中的最大节点层数,确定为所述目标节点对应所述报表中表头单元格的待合并行数;

若所述目标节点为叶子节点,则将所述森林模型中的最大节点层数减去所述目标节点所在的节点层数,再加1,得到所述目标节点对应所述报表中表头单元格的待合并行数;

若所述目标节点为有子节点的父节点,则将所述目标节点对应所述报表中表头单元格的待合并行数确定为1。

可选的,根据所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并列数信息,具体包括:

若目标节点为有子节点的父节点,则将所述目标节点所在分支的叶子节点个数,确定为所述目标节点对应所述报表中表头单元格的待合并列数;

若所述目标节点为无子根节点或叶子节点,则将所述目标节点对应所述报表中表头单元格的待合并行数确定为1。

可选的,按照所述表头单元格信息和所述表头元数据项,确定所述报表的表头信息,具体包括:

依据目标节点对应所述报表中目标表头单元格的所述待合并行数信息和所述待合并列数信息,确定生成所述目标表头单元格所需的待合并单元格信息;

按照所述目标节点的表头元数据项,确定所述目标表头单元格对应的待填写内容信息。

可选的,所述方法还包括:

当接收到所述报表的数据导出指令时,将所述目标节点对应的所述待合并单元格信息中包含的各个待合并单元格进行合并单元格处理,得到所述目标表头单元格;

在所述目标表头单元格中填写所述待填写内容信息中包含的表头内容文本信息,并遍历所述森林模型中的下一个节点,按照所述下一个节点对应的待合并单元格信息和待填写内容信息重复上述过程,直至所述森林模型中的各个节点对应所述报表中表头单元格的内容填写完毕;

获取所述业务元数据对应的数字元数据项,所述数字元数据项分别对应所述森林模型中各个无子根节点和/或各个叶子节点的表头元数据项;

按照所述各个无子根节点和/或各个叶子节点在所述森林模型中的排列顺序,将所述数字元数据项对应的业务数据依次填入相对应的数据单元格内。

可选的,所述方法还包括:

当接收到对所述业务元数据进行调整的指令时,获取更新的表头元数据项;

按照所述更新的表头元数据项,对所述森林模型进行更新。

根据本申请的另一方面,提供了一种基于业务元数据的多级表头报表处理装置,该装置包括:

获取单元,用于获取多级表头报表对应的业务元数据;

配置单元,用于配置所述业务元数据对应的表头元数据项的森林模型,使得所述森林模型中包含树形结构的表头元数据项,且所述树形结构的表头元数据项中的父节点对应所述报表中的父表头,所述树形结构的表头元数据项中的子节点对应所述报表中的子表头;

计算单元,用于根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,以及所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中的表头单元格信息,以便按照所述表头单元格信息和所述表头元数据项,确定所述报表的表头信息。

可选的,所述计算单元,具体用于根据所述森林模型中各节点所在的节点层数、所述森林模型中的最大节点层数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并行数信息;

根据所述森林模型中有子节点的父节点对应的子节点个数,确定所述森林模型中各节点对应所述报表中表头单元格的待合并列数信息。

可选的,所述计算单元,具体还用于若目标节点为无子根节点,则将所述森林模型中的最大节点层数,确定为所述目标节点对应所述报表中表头单元格的待合并行数;

若所述目标节点为叶子节点,则将所述森林模型中的最大节点层数减去所述目标节点所在的节点层数,再加1,得到所述目标节点对应所述报表中表头单元格的待合并行数;

若所述目标节点为有子节点的父节点,则将所述目标节点对应所述报表中表头单元格的待合并行数确定为1。

可选的,所述计算单元,具体还用于若目标节点为有子节点的父节点,则将所述目标节点所在分支的叶子节点个数,确定为所述目标节点对应所述报表中表头单元格的待合并列数;

若所述目标节点为无子根节点或叶子节点,则将所述目标节点对应所述报表中表头单元格的待合并行数确定为1。

可选的,所述计算单元,还用于依据目标节点对应所述报表中目标表头单元格的所述待合并行数信息和所述待合并列数信息,确定生成所述目标表头单元格所需的待合并单元格信息;

按照所述目标节点的表头元数据项,确定所述目标表头单元格对应的待填写内容信息。

可选的,所述装置还包括:处理单元和填写单元;

所述处理单元,用于当接收到所述报表的数据导出指令时,将所述目标节点对应的所述待合并单元格信息中包含的各个待合并单元格进行合并单元格处理,得到所述目标表头单元格;

所述填写单元,用于在所述目标表头单元格中填写所述待填写内容信息中包含的表头内容文本信息,并遍历所述森林模型中的下一个节点,按照所述下一个节点对应的待合并单元格信息和待填写内容信息重复上述过程,直至所述森林模型中的各个节点对应所述报表中表头单元格的内容填写完毕;

所述获取单元,还用于获取所述业务元数据对应的数字元数据项,所述数字元数据项分别对应所述森林模型中各个无子根节点和/或各个叶子节点的表头元数据项;

所述填写单元,还用于按照所述各个无子根节点和/或各个叶子节点在所述森林模型中的排列顺序,将所述数字元数据项对应的业务数据依次填入相对应的数据单元格内。

可选的,所述装置还包括:更新单元;

所述获取单元,还用于当接收到对所述业务元数据进行调整的指令时,获取更新的表头元数据项;

所述更新单元,用于按照所述更新的表头元数据项,对所述森林模型进行更新。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于业务元数据的多级表头报表处理方法。

依据本申请再一个方面,提供了一种基于业务元数据的多级表头报表处理的实体设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于业务元数据的多级表头报表处理方法。

借由上述技术方案,本申请提供的一种基于业务元数据的多级表头报表处理方法、装置及设备,与目前现有的多级表头报表的数据处理方式相比,本申请可预先配置表头元数据项的森林模型,该森林模型中包含树形结构的表头元数据项,且树形结构的表头元数据项中的父节点对应多级表头报表中的父表头,树形结构的表头元数据项中的子节点对应该报表中的子表头,进而可实现将报表表头也定义为元数据项,且将表头元数据项之间按照多级表头的表头结构创建对应关系。然后根据森林模型中各节点所在的节点层数、森林模型中的最大节点层数,以及森林模型中有子节点的父节点对应的子节点个数,可确定所述森林模型中各节点对应所述报表中的表头单元格信息,以便可按照该单元格信息和相应的表头元数据项,确定报表的表头信息,进而建立表头元数据项与报表多级表头相应单元格之间的映射关系。通过这种方式,由于可用表头元数据项直接定义报表多级表头,无需使用报表所用的配置项,将业务系统和报表系统共用一套元数据结构即可使用,相当于利用一套元数据结构代替原来两套元数据结构,减轻了前期实施的工作量,并且后续维护时可直接对业务元数据进行调整即可,无需再调整报表配置项,从而实现报表内容的自动调整,节省了维护的成本,也提高了维护效率和准确性。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种基于业务元数据的多级表头报表处理方法的流程示意图;

图2示出了本申请实施例提供的多级表头报表的实例示意图;

图3示出了本申请实施例提供的森林模型中树形节点实例示意图;

图4示出了本申请实施例提供的一种基于业务元数据的多级表头报表处理装置的结构示意图;

图5示出了本申请实施例提供的另一种基于业务元数据的多级表头报表处理装置的结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

针对目前现有的多级表头报表的数据处理方式,对于前期实施和后期运维的工作量都会大大增加,进而会提高实施维护成本的问题,本实施例提供了一种基于业务元数据的多级表头报表处理方法,可以节省前期实施和后期运维成本,还可以提高后期维护效率和准确性,如图1所示,该方法包括:

101、获取多级表头报表对应的业务元数据。

其中,多级表头报表中包含多个表头,这些表头中有的表头之间具有上下级关系。例如,如图2所示,图中的灰色区域(如“序号”、“供应商编号”、“供应商名称”、“本期已结账”、“应付金额”、“已付金额”、“未付金额”等)为多级表头报表中的表头部分,而“本期已结账”的表头为“应付金额”、“已付金额”、“未付金额”三个表头的上级表头。

业务元数据(metadata),为描述业务数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,用来支持如数据类型、存储位置、校验规则等功能。对于本实施例,多级表头报表对应的业务元数据可以包含表头元数据(对应描述报表表头)以及数字元数据(对应描述报表内具体数据,如各个数字金额、供应商名称等)。

对于本实施例的执行主体可以为多级表头报表的数据处理的装置或设备,具体可配置在服务器侧,用于在元数据框架下实现将多级表头报表的表头定义为元数据项,与目前业务系统和报表系统需要两套元数据结构的方式相比,使得业务系统和报表系统共用一套元数据结构即可实现多级表头报表的数据导出与显示,减轻相应的实施和维护成本。具体执行步骤102至103所示过程。

102、配置业务元数据对应的表头元数据项的森林模型。

其中,该森林模型中可以包含一个或多个树形结构的表头元数据项,或者如果森林模型中都是根节点、且无子节点的结构,那么该森林模型相当于数组结构,即数组结构的表头元数据项。而树形结构的表头元数据项中的父节点对应多级表头报表中的父表头,树形结构的表头元数据项中的子节点对应多级表头报表中的子表头。例如,如图2所示,“本期已结账”的表头为“应付金额”、“已付金额”、“未付金额”三个子表头的父表头。在森林模型中,每棵树之间的排列顺序可以预先根据实际业务需求进行配置,且配置后的排列顺序对应多级表头报表中各个表头的展示顺序。对于森林模型中每棵树的根节点都对应森林模型的第一层节点,这样每棵树可按照同一平面展开排列,且节点层数较多的树要高于节点层数较少的树。

数据库主要涉及的表为scm_bas_item_system、scm_bas_relation和scm_bas_template。这三张表是元数据框架的核心,scm_bas_item_system是元数据项表,scm_bas_template实体表,而其之间为n:n,即多对多的关系,所以scm_bas_relation是该元数据项表与该实体表之间相应的关系表。

对于本实施例,可将多级表头报表的表头定义为元数据项,即scm_bas_item_system表的记录,并在此表上增加parent_id字段,使得表头元数据项成树形结构。树状的元数据结构叶子节点正好是多表头的数据项,而父节点对应了多级表头报表中的父表头,子节点对应了多级表头报表中的子表头。而且此结构支持相对无限层级,使得完整对应多级表头报表中的表头部分,进而从数据上保证了多表头报表导出的正确性。

103、根据森林模型中各节点所在的节点层数、森林模型中的最大节点层数,以及森林模型中有子节点的父节点对应的子节点个数,确定森林模型中各节点对应多表头报表中的表头单元格信息,以便按照表头单元格信息和表头元数据项,确定多表头报表的表头信息。

其中,表头单元格信息中可包含节点对应表头在多表头报表中表头单元格的位置、和该表头单元格需要合并哪些单元格才能得到等信息。森林模型中的最大节点层数为该森林模型中节点层数最多的树所对应的节点层数。节点在森林模型中所在的节点层数为该节点在其所在树中的节点层数,例如,如果节点a为根节点,那么节点a所在的节点层数为1;如果节点b在其所在树中的节点层数为3,那么节点b在森林模型中所在的节点层数为3。

在本实施例中,由于配置生成的森林模型中各节点分别与多级表头报表的表头相对应,因此可根据节点所在树的节点位置以及这棵树在森林模型中的位置,确定该节点对应表头在多表头报表中表头单元格的位置。然后可根据节点在森林模型中所在的节点层数,森林模型中的最大节点层数,以及森林模型中有子节点的父节点对应的子节点个数,可确定该节点对应表头在多表头报表中的表头单元格需要合并哪些单元格才能得到,具体包括需要合并哪些横向的单元格以及哪些纵向的单元格。后续可根据这些单元格合并得到该节点对应的表头单元格,然后按照该节点对应的表头元数据项,在合并得到的该表头单元格中填写相应的表头内容文字,进而将报表的表头内容展示出来。

通过应用上述实施过程,可建立表头元数据项与报表多级表头相应单元格之间的映射关系,方便后续采用本实施例中的表头元数据项森林模型进行多级表头报表的数据导出和显示。通过本实施例上述基于业务元数据的多级表头报表处理方法,与目前现有的多级表头报表的数据处理方式相比,可实现将报表表头也定义为元数据项,且将表头元数据项之间按照多级表头的表头结构创建对应关系。无需使用报表所用的配置项,减轻了前期实施的工作量,并且后续维护时可直接对业务元数据进行调整即可,无需再调整报表配置项,从而实现报表内容的自动调整,节省了维护的成本,也提高了维护效率和准确性。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了说明步骤103中的具体实施过程,实现准确确定节点对应报表中表头单元格所需的单元格合并情况,作为一种优选方式,步骤103具体可以包括:根据森林模型中各节点所在的节点层数、森林模型中的最大节点层数,确定森林模型中各节点对应报表中表头单元格的待合并行数信息;根据森林模型中有子节点的父节点对应的子节点个数,确定森林模型中各节点对应报表中表头单元格的待合并列数信息。

其中,待合并行数信息中可包含表头单元格对应的高度信息,即需要合并的纵向单元格的个数;待合并列数信息中可包含表头单元格对应的宽度信息,即需要合并的横向单元格的个数。

在本实施例中,可以根据节点所在森林模型中的节点层数,以及森林模型中的最大节点层数,确定该节点对应的表头单元格纵向需要合并的单元格数量,进而确定该节点的高度。而对于节点的宽度,如果节点是父节点,那么可以根据该父节点对应的子节点个数,确定该节点对应的表头单元格横向需要合并的单元格数量。通过这种单元格高度和宽度分别计算的方式可以准确得到表头单元格需要合并哪些单元格,避免由于单元格合并问题,导致出现多级表头报表数据导出错误的情况。

为了说明上述确定得到待合并行数信息的实施过程,作为一种可选方式,该步骤具体可以包括:若目标节点为无子根节点,则将森林模型中的最大节点层数,确定为目标节点对应多级表头报表中表头单元格的待合并行数;若目标节点为叶子节点,则将森林模型中的最大节点层数减去目标节点所在的节点层数,再加1,得到目标节点对应多级表头报表中表头单元格的待合并行数;若目标节点为有子节点的父节点,则将目标节点对应多级表头报表中表头单元格的待合并行数确定为1。通过这三种确定节点表头单元格对应待合并行数方式,将节点的情况一一考虑全面,保证合并后的表头单元格与报表表头完整对应。

例如,节点a为无子根节点,即没有叶子节点只有一个根节点的节点,那么可确定节点a对应的表头单元格高度为森林模型中的最大高度,即可将森林模型中的最大节点层数,确定为节点a对应表头单元格的待合并行数,如果森林模型的最大高度为5,那么节点a对应的表头单元格需要合并5行的单元格;节点b为叶子节点,即节点b没有再下一层级的子节点,节点b为所在树中的末端节点,如果节点b所在树的节点层数为3,而森林模型的最大高度为5,说明节点b所在层以及下两层需要合并,因此节点b对应的表头单元格需要合并3行的单元格,且从所在层开始合并下两层的单元格;节点c为有子节点的父节点,即既不是无子根节点又不是叶子节点,那么节点c对应的表头单元格无需纵向合并单元格,待合并行数为1。

对应本实施例,为了说明上述确定得到待合并列数信息的过程,作为一种可选方式,该过程具体可以包括:若目标节点为有子节点的父节点,则将目标节点所在分支的叶子节点个数,确定为目标节点对应多级表头报表中表头单元格的待合并列数;若目标节点为无子根节点或叶子节点,则将目标节点对应多级表头报表中表头单元格的待合并行数确定为1,即对于无子根节点和叶子节点,无需纵向合并单元格。通过这三种确定节点表头单元格对应待合并列数方式,将节点的情况一一考虑全面,保证合并后的表头单元格与报表表头完整对应。

例如,如图3所示,图中根节点、节点a、节点b、节点c和节点d同为有子节点的父节点。作为整棵树的根节点,可以将包含的全部叶子节点个数,确定为该根节点对应表头单元格的待合并列数,具体有5个叶子节点,那么根节点对应的表头单元格需要合并5列的单元格;节点a所在分支具有3个叶子节点,那么节点a对应的表头单元格需要合并2列的单元格,且从左起的3列单元格开始合并;节点b所在分支的叶子节点个数为1,则待合并列数为1,即节点b无需横向合并单元格;节点c所在分支的叶子节点个数为2个,那么节点c对应的表头单元格需要合并2列的单元格,且合并最右侧的两列单元格;节点d所在分支的叶子节点个数同样是2个,即节点d对应的表头单元格需要合并2列的单元格,且合并最左侧的两列单元格。

在本实施例中,在得到目标节点对应多级表头报表中目标表头单元格的待合并行数信息和待合并列数信息之后,为了得到目标节点对应多级表头报表中准确的表头信息,上述步骤103中按照表头单元格信息和表头元数据项,确定多级表头报表的表头信息的过程具体可以包括:依据目标节点对应报表中目标表头单元格的待合并行数信息和待合并列数信息,确定生成目标表头单元格所需的待合并单元格信息;以及按照目标节点的表头元数据项,确定目标表头单元格对应的待填写内容信息。例如,依据目标节点对应表头单元格的待合并行数和待合并列数,以及需要合并哪些单元格,可构造出该目标节点在多级表头报表中对应的目标表头单元格,然后按照目标节点的表头元数据项,可确定在该目标表头单元格中需要填写哪些文字内容,能够表达出该目标表头的内容。

基于上述实施例的过程,进一步的,在本实施例构造的表头元数据项森林模型下,为了实现多级表头报表数据的准确导出,本方法还可以包括:当接收到多级表头报表的数据导出指令时,首先构造报表表头部分,将目标节点对应的待合并单元格信息中包含的各个待合并单元格进行合并单元格处理,得到目标表头单元格;然后在目标表头单元格中填写待填写内容信息中包含的表头内容文本信息,并遍历森林模型中的下一个节点,按照下一个节点对应的待合并单元格信息和待填写内容信息重复上述过程,直至森林模型中的各个节点对应多级表头报表中表头单元格的内容填写完毕,至此报表的表头部分构造完毕。

接着是导出报表具体数据的过程,首先获取业务元数据对应的数字元数据项,其中数字元数据项分别对应森林模型中各个无子根节点和/或各个叶子节点的表头元数据项;按照各个无子根节点和/或各个叶子节点在森林模型中的排列顺序,将数字元数据项对应的业务数据依次填入相对应的数据单元格内。通过这种方式,可在元数据框架下实现多级表头报表数据的正确导出,在应用于erp产品的场景下,可使得erp产品能够更好的支持多级表头报表,由于表头直接对应元数据项,方便后续进行报表表头的灵活配置。

例如,如图2所示,在灰色区域的表头构造完毕后,获取对应森林模型中各个无子根节点和各个叶子节点的数字元数据项,并按照这些节点在森林模型中的排列顺序,将这些数字元数据项对应的业务数据依次填入相对应的数据单元格内,如图2中“0000003”是通过“供应商编号”无子根节点表头下的第一个单元格所对应的数字元数据项得到的。

进一步的,为了后续实现在调整业务元数据时一并自动调整相应的森林模型,作为一种优选方式,本方法还可以包括:当接收到对业务元数据进行调整的指令时,获取更新的表头元数据项;然后按照更新的表头元数据项,对森林模型进行更新。例如,在删除某一表头对应表头元数据和数字元数据后,在森林模型中也自动删除这一表头对应的节点,后续在展示报表时就不会再显示该表头对应的这一列数据。通过这种方式可以实现对森林模型的自动更新,提高森林模型的更新效率,且能够满足不同的业务需求。

为了方便理解上述本实施例所描述的内容,以多级表头报表的数据导出为例,给出如下应用场景,但不限于此:

例如,在配置得到表头元数据项的森林模型之后,首先计算森林模型的最大高度,即森林模型中的最大节点层数,以及获取每个节点所在的层数level;然后递归遍历该森林模型,具体过程包括:如果是无子根节点,则按照森林模型的高度确定该节点对应表头单元格的高度,且该表头单元格的宽度设置为1,即无需合并横向单元格,然后按照该节点对应的表头元数据项在单元格内设置表头内容文字;如果是叶子节点,则根据将森林模型中的最大高度减去该节点对应的level值,再加1,得到该节点对应表头单元格的高度,且该表头单元格的宽度同样设置为1,然后按照该节点对应的表头元数据项在单元格内设置表头内容文字;如果该节点为有子节点的父节点则其单元格高度设置为1,即无需合并纵向单元格,并且根据该节点所在分支的叶子节点个数,确定该单元格的宽度,然后按照该节点对应的表头元数据项在单元格内设置表头内容文字。在对森林模型递归遍历完毕后,多级表头报表的表头生成得到。最后数据对应表头,生成查询元数据时,元数据框架只使用不含有子项的数字元数据项,即对应森林模型中的叶子节点和/或无子根节点,将数字元数据项按照森林模型中构造各棵树的相同顺序进行sql语句组装,最后查出结果,依次填入对应单元格内,即将具体的报表数据导出展示。通过这种方式可保证在元数据框架下多级表头报表导出的正确性。

进一步的,作为图1所示方法的具体实现,本实施例提供了一种基于业务元数据的多级表头报表处理装置,如图4所示,该装置包括:获取单元21、配置单元22、计算单元23。

获取单元21,可用于获取多级表头报表对应的业务元数据;获取单元21为本装置中获取业务元数据的主要功能模块。

配置单元22,可用于配置业务元数据对应的表头元数据项的森林模型,使得森林模型中可包含树形结构的表头元数据项,且树形结构的表头元数据项中的父节点对应报表中的父表头,树形结构的表头元数据项中的子节点对应报表中的子表头,或者为简单数组结构的表头元数据项;配置单元22为本装置中生成表头元数据项的森林模型的主要功能模块,也为本装置中的核心功能模块。

计算单元23,可用于根据森林模型中各节点所在的节点层数、森林模型中的最大节点层数,以及森林模型中有子节点的父节点对应的子节点个数,确定森林模型中各节点对应报表中的表头单元格信息,以便按照表头单元格信息和表头元数据项,确定报表的表头信息。计算单元23为本装置中确定节点对应报表中的表头单元格信息的主要功能模块,方便后续进行报表数据导出。

在具体的应用场景中,为了实现准确确定节点对应报表中表头单元格所需的单元格合并情况,计算单元23,具体可用于根据森林模型中各节点所在的节点层数、森林模型中的最大节点层数,确定森林模型中各节点对应报表中表头单元格的待合并行数信息;根据森林模型中有子节点的父节点对应的子节点个数,确定森林模型中各节点对应报表中表头单元格的待合并列数信息。

在具体的应用场景中,计算单元23,具体还可用于若目标节点为无子根节点,则将森林模型中的最大节点层数,确定为目标节点对应报表中表头单元格的待合并行数;若目标节点为叶子节点,则将森林模型中的最大节点层数减去目标节点所在的节点层数,再加1,得到目标节点对应报表中表头单元格的待合并行数;若目标节点为有子节点的父节点,则将目标节点对应报表中表头单元格的待合并行数确定为1。

通过这三种确定节点表头单元格对应待合并行数方式,将节点的情况一一考虑全面,保证合并后的表头单元格与报表表头完整对应。

在具体的应用场景中,计算单元23,具体还可用于若目标节点为有子节点的父节点,则将目标节点所在分支的叶子节点个数,确定为目标节点对应报表中表头单元格的待合并列数;若目标节点为无子根节点或叶子节点,则将目标节点对应报表中表头单元格的待合并行数确定为1。

通过这三种确定节点表头单元格对应待合并列数方式,将节点的情况一一考虑全面,保证合并后的表头单元格与报表表头完整对应。

在具体的应用场景中,为了得到目标节点对应多级表头报表中准确的表头信息,计算单元23,还可用于依据目标节点对应报表中目标表头单元格的待合并行数信息和待合并列数信息,确定生成目标表头单元格所需的待合并单元格信息;按照目标节点的表头元数据项,确定目标表头单元格对应的待填写内容信息。

在具体的应用场景中,为了实现多级表头报表数据的准确导出,如图5所示,本装置还包括:处理单元24和填写单元25;

处理单元24,可用于当接收到报表的数据导出指令时,将目标节点对应的待合并单元格信息中包含的各个待合并单元格进行合并单元格处理,得到目标表头单元格;

填写单元25,可用于在目标表头单元格中填写待填写内容信息中包含的表头内容文本信息,并遍历森林模型中的下一个节点,按照下一个节点对应的待合并单元格信息和待填写内容信息重复上述过程,直至森林模型中的各个节点对应报表中表头单元格的内容填写完毕;

获取单元21,还可用于获取业务元数据对应的数字元数据项,数字元数据项分别对应森林模型中各个无子根节点和/或各个叶子节点的表头元数据项;

填写单元25,还可用于按照各个无子根节点和/或各个叶子节点在森林模型中的排列顺序,将数字元数据项对应的业务数据依次填入相对应的数据单元格内。

在具体的应用场景中,为了后续实现在调整业务元数据时一并自动调整相应的森林模型,如图5所示,本装置还包括:更新单元26;

获取单元21,还可用于当接收到对业务元数据进行调整的指令时,获取更新的表头元数据项;

更新单元26,可用于按照更新的表头元数据项,对森林模型进行更新。通过这种方式可以实现对森林模型的自动更新,提高森林模型的更新效率,且能够满足不同的业务需求。

需要说明的是,本实施例提供的一种基于业务元数据的多级表头报表处理装置所涉及各功能单元的其它相应描述,可以参考图1中的对应描述,在此不再赘述。

基于上述如图1所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1所示的基于业务元数据的多级表头报表处理方法。具体可使用java语言工具实现元数据报表逻辑,使用apachepoi工具实现多级表头报表数据的excel文件导出,并且使用mysql数据库实现元数据存储和业务数据存储。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1所示的方法,以及图4、图5所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种基于业务元数据的多级表头报表处理的实体设备,具体可以为个人计算机,智能手机、平板电脑、智能手表,或者其它网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1所示的基于业务元数据的多级表头报表处理方法。

可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种基于业务元数据的多级表头报表处理设备的结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述基于业务元数据的多级表头报表处理实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,可实现将报表表头也定义为元数据项,且将表头元数据项之间按照多级表头的表头结构创建对应关系。无需使用报表所用的配置项,减轻了前期实施的工作量,并且后续维护时可直接对业务元数据进行调整即可,无需再调整报表配置项,从而实现报表内容的自动调整,节省了维护的成本,也提高了维护效率和准确性。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

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