报表间数据处理的方法与流程

文档序号:21638713发布日期:2020-07-29 02:49阅读:444来源:国知局
报表间数据处理的方法与流程

本发明涉及报表数据处理领域,尤其涉及一种报表间数据处理的方法。



背景技术:

随着信息技术的不断发展,报表类数据信息处理逐渐增多。例如,在erp(enterpriseresourceplanning)管理系统中,以及在网站应用中,经常会需要通过报表工具展示和修改报表数据,报表类的功能应用非常广泛。

目前大多数报表,在本表中进行数据的核算、拉取等操作,如果涉及到跨表的业务则束手无策。



技术实现要素:

本发明实施例提供一种报表间数据处理的方法,能够从多个报表中调用数据,实现跨报表之间数据的互联互通。

本发明实施例采用如下技术方案:

一种报表间数据处理的方法,包括:

获取预存的多个报表之间的表间取数公式,所述表间取数公式用于标示分布于所述多个报表中的特定数据的调用规则;

按照所述表间取数公式从所述多个报表中调用所述特定数据;

对所述特定数据进行处理,得到数据处理结果。

可选的,所述表间取数公式包括:

所述多个报表的报表类型和报表编号,所述多个报表中所述特定数据所处的单元格位置、行编号和列编号;

所述报表编号选择范围为当前用户所在组织所有有权限的报表。

可选的,所述表间取数公式还包括:任务周期,或者年度月份日期、任务编号、本级代码中至少一种;

所述任务编号范围为当前用户所有有权限的任务;所述任务周期选择范围根据选择的任务类型确定,所述任务周期表示用户确定的目标任务周期;所述本级代码选择范围为所述任务编号对应任务和所述任务周期下的本级代码;所述年度月份日期表示用户确定的目标日期与当前日期的差值。

可选的,还包括:将所述表间取数公式显示在单元格中,并根据所述表间取数公式的类型匹配不同的背景颜色;

并将所述表间取数公式保存到js对象中,所述js对象位置为report_variable.reportformulaobj.formulacollect[报表orde].rpformulaobjcollect[行内码-列内码-校验标志-方案内码-公式序号bjqs-填报单位]。

可选的,所述表间取数公式保存时,根据所述任务编号对应任务及所述任务周期获取被获取数据报表的版本,根据所述单元格位置获取对应的行orde和列orde,插入到表间取数公式的对应位置进行保存。

可选的,若所述特定数据为周期数据,则:

当前任务类型为日报时,从日报获取所述特定数据;

当前任务类型为五日报时,从五日报获取所述特定数据;

当前任务类型为周报时,从周报获取所述特定数据;

当前任务类型为月报时,从月报、季报、年报获取所述特定数据;

当前任务类型为季报时,从月报、季报、年报获取所述特定数据;

当前任务类型为年报时,从月报、季报、年报获取所述特定数据。

可选的,所述任务编号对应任务类型与当前任务类型相同时:

如所述任务编号对应任务类型为日报,则按年、月、日计算获取所选任务周期;

如所述任务编号对应任务类型为五日报,则获取当前周期的填报日期,年不为0时计算获取对应年度周期;月、日不为0时,计算获取所选任务周期的填报日期,获取所选任务周期,日为5的倍数且在0到-25之间;

如所述任务编号对应任务类型为周报,则获取当前周期的填报日期,年不为0时计算获取对应年度周期,月忽略;日为0或7的倍数且小于等于0,日不为0时,日除以7判断间隔的周期数,计算获取目标任务周期期;

如所述任务编号对应任务类型为月报,则按年、月计算获取目标任务周期,日忽略,月为0到-11之间;

如所述任务编号对应任务类型为季报,则按年、月计算获取目标任务周期,日忽略,月为0到-9之间且为3的倍数,计算时除以3即为间隔的周期数;

如所述任务编号对应任务类型为年报,则按年计算获取目标任务周期,月、日忽略。

可选的,所述任务编号对应任务类型与当前任务类型不同时:

当前任务为月报时,如所选任务为季报,则按年、月计算目标月份所在季度,获取目标任务周期,日忽略,月为0或小于0且为3的倍数;如所选任务为年报,则获取当年或过去几年年报中的数据,年为0或小于0,月、日忽略;

当前任务为季报时,如所选任务为月报,则根据年、月获取当前季度中的月份,日忽略,月为0、-1、-2;如所选任务为年报,则获取当年或过去几年年报中的数据,年为0或小于0,月、日忽略;

当前任务为年报时,如所选任务为月报,则根据年、月获取当年或过去几年中月份的数据,日忽略,月为0和小于0;如所选任务为季报,则根据年、月获取目标日期所在的季度,日忽略,月为0和小于0。

可选的,所述对所述特定数据进行处理,得到数据处理结果包括:

区分多报表计算、单表计算,若是单表计算则获取本张报表中所有的表间取数公式进行计算,若是多报表计算则获取当前任务下当前用户所在组织有权限的所有报表,循环对每张报表进行表间取数公式计算;

根据定义的表间取数公式,获取是否已设置目标年度月份日期、任务周期,若已设定则当前报表取数公式为跨周期的取数公式;

根据定义的表间取数公式,获取是否已设置目标本级代码,若已设定则当前报表取数公式为跨组织取数公式;

根据定义的表间取数公式,获取是否已设置所述任务编号且与当前任务编号不同,若已设定且不同则当前报表取数公式为跨任务取数公式;

若为跨任务取数公式,则判断是否有所述任务编号对应任务的数据权限;

若为跨周期的取数公式,则判断是设定年度月份日期还是设定任务周期,若设定年度月份日期则根据所述任务编号对应任务类型计算用户确定的日期所在的任务周期;

若为跨组织取数公式,则获取目标组织封面的信息;

通过数据查询sql,获取数据结果,组织公式计算结果,与其他类型公式计算结果一同得出所述处理结果。

可选的,所述对所述特定数据进行处理,得到数据处理结果之后,还包括:

将所述数据处理结果插入到对象formularesult中,格式为hashmap类型,key为“行orde-列orde”,value为所述数据处理结果;

根据formularesult中的内容,将所述数据处理结果插入到报表中,插入时间为插入变动数据之前。

基于上述技术方案的报表间数据处理的方法,获取预存的多个报表之间的用于标示分布于多个报表中的特定数据的调用规则的表间取数公式,按照表间取数公式从多个报表中调用特定数据,对特定数据进行处理,得到数据处理结果,从而能够从多个报表中调用数据,实现跨报表之间数据的互联互通。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明实施例提供的报表间数据处理的方法的流程图;

图2为本发明实施例提供的表间取数公式保存参考示例。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

如图1所示,本法买那个实施例提供一种报表间数据处理的方法,包括:

11、获取预存的多个报表之间的表间取数公式,所述表间取数公式用于标示分布于所述多个报表中的特定数据的调用规则;

12、按照所述表间取数公式从所述多个报表中调用所述特定数据;

13、对所述特定数据进行处理,得到数据处理结果。

本发明实施例的报表间数据处理的方法,获取预存的多个报表之间的用于标示分布于多个报表中的特定数据的调用规则的表间取数公式,按照表间取数公式从多个报表中调用特定数据,对特定数据进行处理,得到数据处理结果,从而能够从多个报表中调用数据,实现跨报表之间数据的互联互通。

在一个实施例中,所述表间取数公式包括:

所述多个报表的报表类型(行变动表、列变动表、浮动表等)和报表编号,所述多个报表中所述特定数据所处的单元格位置、行编号和列编号;

所述报表编号选择范围为所选任务在选择周期内版本下,当前用户所在组织所有有权限的报表。

在一个实施例中,所述表间取数公式还包括:任务周期,或者年度月份日期、任务编号、本级代码中至少一种;

所述任务编号范围为当前用户所有有权限的任务;所述任务周期选择范围根据选择的任务类型确定,具体的,定义报表前定义任务,任务类型分为日报、月报、季报和年报,任务周期根据类型不同显示的不同,例如日报为“20200331”,年报为“2020”;所述任务周期表示用户确定的目标任务周期;所述本级代码选择范围为所述任务编号对应任务和所述任务周期下的本级代码;所述年度月份日期表示用户确定的目标日期与当前日期的差值。

在一个实施例中,年度月份日期、任务编号、任务周期、报表类型、本级代码、报表编号为非必备项,若未设定,则在公式中都默认为空串,表示当前的任务周期、封面、报表信息。单元格信息为必备项,表示目标单元格坐标,格式如b2、c35,行编号和列编号在公式保存时自动根据单元格坐标获取对应的行orde及列orde。图2为一表间取数公式保存参考示例。

在一个实施例中,还包括:将所述表间取数公式显示在单元格(可以为用户选定)中,并根据所述表间取数公式的类型匹配不同的背景颜色;例如,背景色为蓝色(宏公式为淡紫色,基础公式为黄色,分析公式为白色)。

并将所述表间取数公式保存到js对象中,所述js对象位置为report_variable.reportformulaobj.formulacollect[报表orde].rpformulaobjcollect[行内码-列内码-校验标志-方案内码-公式序号bjqs-填报单位]。

在一个实施例中,所述表间取数公式保存时,根据所述任务编号对应任务及所述任务周期获取被获取数据报表的版本,根据所述单元格位置获取对应的行orde和列orde,插入到表间取数公式的对应位置进行保存。

在一个实施例中,若所述特定数据为周期数据,则:

当前任务类型为日报时,从日报获取所述特定数据;

当前任务类型为五日报时,从五日报获取所述特定数据;

当前任务类型为周报时,从周报获取所述特定数据;

当前任务类型为月报时,从月报、季报、年报获取所述特定数据;

当前任务类型为季报时,从月报、季报、年报获取所述特定数据;

当前任务类型为年报时,从月报、季报、年报获取所述特定数据。

在一个实施例中,所述任务编号对应任务类型与当前任务类型相同时:

如所述任务编号对应任务类型为日报,则按年、月、日计算获取所选任务周期;

如所述任务编号对应任务类型为五日报,则获取当前周期的填报日期,年不为0时计算获取对应年度周期;月、日不为0时,计算获取所选任务周期的填报日期,获取所选任务周期,日为5的倍数且在0到-25之间;如当前周期为2019004011008(2019年04月06日-04月10),年月日分别为-1、1、10时,目标任务周期为2018005021008(2018年05月16日-05月20);

如所述任务编号对应任务类型为周报,则获取当前周期的填报日期,年不为0时计算获取对应年度周期,月忽略;日为0或7的倍数且小于等于0,日不为0时,日除以7判断间隔的周期数,计算获取目标任务周期期;如当前周期为2019015002(2019年总第15周04月08日-04月14日),年、日分别为-1、-14时,目标任务周期为2018013002(2018年03月26日-04月01日);

如所述任务编号对应任务类型为月报,则按年、月计算获取目标任务周期,日忽略,月为0到-11之间;

如所述任务编号对应任务类型为季报,则按年、月计算获取目标任务周期,日忽略,月为0到-9之间且为3的倍数,计算时除以3即为间隔的周期数;

如所述任务编号对应任务类型为年报,则按年计算获取目标任务周期,月、日忽略。

本实施例中,任务可分多种类型,任务的计算、取数方式不同,在当前任务类型中计算、获取数据。

在一个实施例中,所述任务编号对应任务类型与当前任务类型不同时:

当前任务为月报时,如所选任务为季报,则按年、月计算目标月份所在季度,获取目标任务周期,日忽略,月为0或小于0且为3的倍数;如所选任务为年报,则获取当年或过去几年年报中的数据,年为0或小于0,月、日忽略;

当前任务为季报时,如所选任务为月报,则根据年、月获取当前季度中的月份,日忽略,月为0、-1、-2;如所选任务为年报,则获取当年或过去几年年报中的数据,年为0或小于0,月、日忽略;

当前任务为年报时,如所选任务为月报,则根据年、月获取当年或过去几年中月份的数据,日忽略,月为0和小于0;如所选任务为季报,则根据年、月获取目标日期所在的季度,日忽略,月为0和小于0,如月为0到-2则为第四季度,-6到-8为第二季度。

在一个实施例中,所述对所述特定数据进行处理,得到数据处理结果包括:

区分多报表计算、单表计算,若是单表计算则获取本张报表中所有的表间取数公式进行计算,若是多报表计算则获取当前任务下当前用户所在组织有权限的所有报表,循环对每张报表进行表间取数公式计算;从而,用户在相同任务类型下,从自己有权限查看的报表中取数,防止越权获取数据的情况。

根据定义的表间取数公式,获取是否已设置目标年度月份日期、任务周期,若已设定则当前报表取数公式为跨周期的取数公式;

根据定义的表间取数公式,获取是否已设置目标本级代码,若已设定则当前报表取数公式为跨组织取数公式;

根据定义的表间取数公式,获取是否已设置所述任务编号且与当前任务编号不同,若已设定且不同则当前报表取数公式为跨任务取数公式;

若为跨任务取数公式,则判断是否有所述任务编号对应任务的数据权限;

若为跨周期的取数公式,则判断是设定年度月份日期还是设定任务周期,若设定年度月份日期则根据所述任务编号对应任务类型计算用户确定的日期所在的任务周期;

若为跨组织取数公式,则获取目标组织封面的信息;具体的,报表挂在组织下的,不同组织有自己的报表、数据,如需跨组织取数,则携带组织的标识信息(封面),便于追溯到目标数据。

根据设定内容组装取数sql:selectnrprwbbsj_data,nrprwbbsj_textfromnrprwbbsjwherenrprwbbsj_rwbh='?'andbbzd_bh='?'andsjzd_bh='?'andhzd_orde='?'andlzd_orde='?'andbbzd_date='?'andsjzd_bblx='?'。

通过数据查询sql,获取数据结果,组织公式计算结果,与其他类型公式计算结果一同得出所述处理结果。

在一个实施例中,所述对所述特定数据进行处理,得到数据处理结果之后,还包括:

将所述数据处理结果插入到对象formularesult中,格式为hashmap类型,key为“行orde-列orde”,value为所述数据处理结果;

根据formularesult中的内容,将所述数据处理结果插入到报表中,插入时间为插入变动数据之前。

本发明实施例的数据配置表结构为:

本发明实施例的报表间数据处理的方法,获取预存的多个报表之间的用于标示分布于多个报表中的特定数据的调用规则的表间取数公式,按照表间取数公式从多个报表中调用特定数据,对特定数据进行处理,得到数据处理结果,从而能够从多个报表中调用数据,实现跨报表之间数据的互联互通。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

在本说明书中对“一个实施例”、“实施例”、“示例性实施例”等的任何引用意味着结合该实施例描述的特定特征、结构、或特性被包括在本发明的至少一个实施例中。在说明书中各处出现的这些短语不一定都指同一实施例。此外,当结合任何实施例描述特定特征、结构或特性时,应认为其落在本领域技术人员的能力范围内以实现与其实施例相关的这种特征、结构或特性。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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