报表计算方法以及装置与流程

文档序号:14269318阅读:233来源:国知局

本发明涉及信息技术领域,具体地,涉及一种报表计算方法以及一种报表计算装置。



背景技术:

报表反应了企业在一定期间内的各项经济状况,是对相关数据进行统计分析、收集处理的一个载体。在当今这个数字化信息时代,报表的填写早已告别传统的手工填写的模式,而是通过利用报表填写系统来完成。在该系统中,用户填写报表数据并根据需要在一些单元格处进行逻辑运算。

然而,用户在使用现有的报表填写系统对具有逻辑运算关系的单元格进行填写时的工作效率有待提高,不够智能化。



技术实现要素:

针对现有技术中存在的报表填写过程中报表计算不够智能、效率较低等的技术问题,本发明提供了一种报表计算方法,该方法包括:加载报表并获取报表数据;从所述报表数据中提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号;根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式;根据所述子逻辑运算公式中的单元格位置,读取该单元格位置所对应的数值并将该数值代入到所述子逻辑运算公式中计算结果;以及根据每个子逻辑运算公式的计算结果,计算所述逻辑运算公式的结果。

优选地,所述逻辑运算公式包括至少一个运算符以及所述子逻辑运算公式仅包括一个运算符。

优选地,该方法还包括:将所计算的所述逻辑运算公式的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,该方法还包括:检测单元格触发事件;在检测到单元格触发事件的情况下,确定该单元格位置处的数值被更新;将该更新的数值代入到该单元格位置对应的逻辑运算公式进行重新计算;以及将重新计算的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,所述单元格触发事件是来自用户的手动输入或者下拉框选择。

相应地,本发明还提供了一种报表计算装置,该装置包括:加载模块,用于加载报表并获取报表数据;提取和解析模块,用于从所述报表数据中提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号;拆分模块,用于根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式;以及计算模块,用于根据所述子逻辑运算公式中的单元格位置,读取该单元格位置所对应的数值并将该数值代入到所述子逻辑运算公式中计算结果;以及还用于根据每个子逻辑运算公式的计算结果,计算所述逻辑运算公式的结果。

优选地,所述逻辑运算公式包括至少一个运算符以及所述子逻辑运算公式仅包括一个运算符。

优选地,该装置还包括:写入模块,用于将所计算的所述逻辑运算公式的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,该装置还包括:单元格触发事件检测模块,用于检测单元格触发事件;单元格触发事件确定模块,用于在检测到单元格触发事件的情况下确定该单元格位置处的数值被更新;所述计算模块还用于将该更新的数值代入到该单元格位置对应的逻辑运算公式进行重新计算;以及所述写入模块还用于将重新计算的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,所述单元格触发事件是来自用户的手动输入或者下拉框选择。

采用本发明提供的报表计算方法以及装置,能够实现报表中具有逻辑运算关系的各个单元格之间的自动运算,实现录入报表过程中的数据的智能化,并且能够避免具有相关关系的单元格之间的数据出现错误,提高报表填写的准确性。

更为优选地,本发明提供的报表计算方法以及装置,还可以实时检测单元格触发事件,实现相关单元格数据的实时更新,提高报表填写时各个单元格中数据的准确性。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明的一种实施方式的示例报表计算装置的结构示意图;

图2是根据本发明的一种实施方式的示例报表计算装置所执行的数值更新过程的流程图;以及

图3是根据本发明的一种实施方式的示例报表计算方法的流程图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明的一种实施方式的示例报表计算装置100的结构示意图,如图1所示,该装置可以包括:加载模块11,用于加载报表并获取报表数据;提取和解析模块12,用于从所述报表数据中提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号;拆分模块13,用于根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式;以及计算模块14,用于根据所述子逻辑运算公式中的单元格位置,读取该单元格位置所对应的数值并将该数值代入到所述子逻辑运算公式中计算结果;以及还用于根据每个子逻辑运算公式的计算结果,计算所述逻辑运算公式的结果。

具体来说,通常情况下,报表以excel表格的形式存在,因此需要加载模块11加载报表并获取报表数据,例如通过cell控件等具有数据读取和写入功能的控件加载excel表格。之后,提取和解析模块12可以从所述报表数据中提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号(例如通过cell控件)。接着,拆分模块13可以根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式,其中所述逻辑运算公式可以包括至少一个运算符以及所述子逻辑运算公式仅包括一个运算符,即拆分模块13可以将包含多个逻辑运算的公式拆分为多个最小运算单元,每个最小运算单元作为子逻辑运算公式仅包含一种运算逻辑。所述逻辑运算可以是加减乘除四则运算、以及加权sum等的运算逻辑。接着,计算模块14可以根据所述子逻辑运算公式中的单元格位置,读取该单元格位置所对应的数值并将该数值代入到所述子逻辑运算公式中计算结果;以及根据每个子逻辑运算公式的计算结果,计算所述逻辑运算公式的结果。例如将每个子逻辑运算公式组合(例如相加),以计算出逻辑运算公式的结果。

举例来说,以报表中预置了格式为sum(d8:d11)-d12+sum(d14:d21)的逻辑运算公式为例,提取和解析模块12可以从所述报表数据中该提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号(例如通过cell控件)。然后,拆分模块13可以根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式,每一部分再单独计算,如果每个部分仍然存在运算符,则继续进行拆分,直到不能再继续拆分为止。其中,sum(d8:d11)是可以单独进行计算的一个最小单位(即子逻辑运算公式),计算模块14可以读取括号中的单元格位置,将代表单元格位置的字符如d8转换成单元格的行列序号,在本例中,读取单元格第四列中从第8行至第11行的各个单元格中的数据累计相加计算出总和,如果这其中的单元格存在没有数据的情况,则计算模块14可以自动默认为将该数值作为零进行计算。同理,计算模块14单独计算每个最小的单位,读取d12单元格位置的数值,计算第四列中从第14行至第21行的各个单元格中的数值的总和,然后将sum(d8:d11)的值与d12中的值做减法,并将结果与sum(d14:d21)的值做加法,最终计算出逻辑运算公式sum(d8:d11)-d12+sum(d14:d21)的结果。

为了显示计算结果,该报表计算装置100还可以包括:写入模块,其可以将所计算的所述逻辑运算公式的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处,例如通过cell控件将该计算结果写入到报表中。

进一步地,为了实现对于报表中数据更新(例如来自用户的手动输入或者下拉框选择)的自动报表计算,该报表计算装置100还可以包括:单元格触发事件检测模块,用于检测单元格触发事件;单元格触发事件确定模块,用于在检测到单元格触发事件的情况下确定该单元格位置处的数值被更新;所述计算模块还用于将该更新的数值代入到该单元格位置对应的逻辑运算公式进行重新计算;以及所述写入模块还用于将重新计算的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

具体地,图2是根据本发明的一种实施方式的示例报表计算装置所执行的数值更新过程的流程图,如图2所示,报表计算装置100的单元格触发事件检测模块可以被配置成实时检测单元格触发事件,即步骤s21,其中所述单元格触发事件可以是来自用户的手动输入或者下拉框选择。例如用户在报表填写系统中进行手动录入(手动输入新的数值或者通过下拉框选择修改数值)。

在步骤s22,判断是否检测到单元格触发事件。

在步骤s23,单元格触发事件确定模块在检测到单元格触发事件的情况下确定该单元格位置处的数值被更新。反之,则返回步骤s21继续检测单元格触发事件。

接着,所述计算模14可以将该更新的数值代入到该单元格位置对应的逻辑运算公式进行重新计算,即步骤s24,其中当更新的单元格内的数据为空(即没有任何数据)时,则将默认将该更新的数值设置为0代入到公式中计算,所述逻辑运算公式的具体计算过程如上所述,在此不再赘述;如果该单元格的数值没有对应任何的逻辑运算公式,则不进行任何计算操作并返回到步骤s21。

最终,在步骤s25,写入模块可以将重新计算的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处(例如通过cell控件等),实现计算结果的更新。

在这种实施方式中,报表中的数据可以在报表填写系统中进行手工录入,当修改某个单元格位置中的数据时,系统会在保存有报表中各个公式的数据表中进行遍历,检测该单元格是否参与某些逻辑运算公式的计算。如果该单元格不参与其他任何单元格的计算,则不进行任何操作;否则返回该单元格参与计算的所有单元格的列表以及单元格的详细公式,然后使用数据发生变化的单元格修改后的数据重新计算,返回修改后的计算结果并且实时地将修改后的结果显示在报表中。通过这样的方式,能够实现报表中关联数据的实时更新,极大地增强了填写报表数据时数据的准确性,同时也为填写报表的人员提供了便利。

在实际应用中,报表计算装置100可以通过软件或硬件方式实现上述功能,例如应用程序(例如金税三期系统等报表填写系统的任意应用程序)可以以软件方式实现报表计算装置100的功能,当使用该应用程序时可以执行相应地报表计算功能。此外,该装置也可以通过硬件方式实现,以满足用户的不同需求。

图3是根据本发明的一种实施方式的示例报表计算方法的流程图,如图3所示,该方法可以包括以下步骤:

步骤s11,加载报表并获取报表数据;

步骤s12,从所述报表数据中提取逻辑运算公式并解析所述逻辑运算公式中的逻辑运算符号;

步骤s13,根据所述逻辑运算公式中的所述逻辑运算符将所述逻辑运算公式拆分为多个子逻辑运算公式;

步骤s14,根据所述子逻辑运算公式中的单元格位置,读取该单元格位置所对应的数值并将该数值代入到所述子逻辑运算公式中计算结果;以及

步骤s15,根据每个子逻辑运算公式的计算结果,计算所述逻辑运算公式的结果。

优选地,所述逻辑运算公式包括至少一个运算符以及所述子逻辑运算公式仅包括一个运算符。

优选地,该方法还包括:将所计算的所述逻辑运算公式的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,该方法还包括:检测单元格触发事件;在检测到单元格触发事件的情况下,确定该单元格位置处的数值被更新;将该更新的数值代入到该单元格位置对应的逻辑运算公式进行重新计算;以及将重新计算的结果写入到所述逻辑运算公式对应的所述报表的单元格位置处。

优选地,所述单元格触发事件是来自用户的手动输入或者下拉框选择。

应当理解的是,上述报表计算方法的各个具体实施方式,均已在示例报表计算装置的实施方式中做了详细地说明(如上所述),在此不再赘述。并且,本领域技术人员可以根据本发明的公开选择上述各种实施方式中的任一者,或者选择上述各种实施方式的组合来配置报表计算装置,并且其他的替换实施方式也落入本发明的保护范围。

采用本发明提供的报表计算方法以及装置,能够实现报表中具有逻辑运算关系的各个单元格之间的自动运算,实现录入报表过程中的数据的智能化,并且能够避免具有相关关系的单元格之间的数据出现错误,提高报表填写的准确性。

更为优选地,本发明提供的报表计算方法以及装置,还可以实时检测单元格触发事件,实现相关单元格数据的实时更新,提高报表填写时各个单元格中数据的准确性。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

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