CN104778043B - 一种基于计算顺序处理前置的集团财务报表计算方法 - Google Patents

一种基于计算顺序处理前置的集团财务报表计算方法 Download PDF

Info

Publication number
CN104778043B
CN104778043B CN201510154178.6A CN201510154178A CN104778043B CN 104778043 B CN104778043 B CN 104778043B CN 201510154178 A CN201510154178 A CN 201510154178A CN 104778043 B CN104778043 B CN 104778043B
Authority
CN
China
Prior art keywords
formula
computation sequence
branch
report
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510154178.6A
Other languages
English (en)
Other versions
CN104778043A (zh
Inventor
王相成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201510154178.6A priority Critical patent/CN104778043B/zh
Publication of CN104778043A publication Critical patent/CN104778043A/zh
Application granted granted Critical
Publication of CN104778043B publication Critical patent/CN104778043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种基于计算顺序处理前置的集团财务报表计算方法,其具体实现过程为:在财务报表中定义报表公式时,处理该报表公式与其他报表公式的嵌套关系,计算在所有报表公式中的计算顺序,并作为报表公式的属性保存至数据库中;在财务报表计算时,按照计算范围取出所有公式,按照已保存的计算顺序排序,逐批计算报表公式。该一种基于计算顺序处理前置的集团财务报表计算方法与现有技术相比,能够显著的分散报表计算任务,合理延长计算资源有效利用时间,减少月末出表计算压力,有效提升报表性能,实用性强。

Description

一种基于计算顺序处理前置的集团财务报表计算方法
技术领域
本发明涉及计算机软件技术领域,具体地说是一种实用性强、基于计算顺序处理前置的集团财务报表计算方法。
背景技术
集团企业财务报表处理业务时间分布不均,平时基本不做,月末集中出表,高并发导致报表系统性能低下。能够有效地将数据处理任务分解成多项工作,将可前置工作移至计算资源闲置的时段进行,提高计算资源的整体利用率是非常重要的。
在财务报表处理上,有两类取数公式:一类为从账务取数的业务公式,一类为从报表上其他单元格取数的报表公式,其中报表公式在计算时,公式之间嵌套关系的处理,占用较多资源。报表公式之间的嵌套关系在定义时已经确定,可以将其作为剥离出来,作为前置工作,减少月末出表时的资源占用。基于此,现提出了一种基于计算顺序处理前置的集团财务报表计算方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于计算顺序处理前置的集团财务报表计算方法。
一种基于计算顺序处理前置的集团财务报表计算方法,其具体实现过程为:
1)在财务报表中定义报表公式,处理该报表公式与其他报表公式的嵌套关系,计算在所有报表公式中的计算顺序,并作为报表公式的属性保存至数据库中,所述报表公式是指在报表某单元格上,由报表函数和常数、数学运算符组成的表达式,一个报表公式包含多个报表函数,该报表函数为取报表某单元格数值的表达式;
2)对财务报表进行计算,按照计算范围取出所有公式,按照已保存的计算顺序排序,逐批计算报表公式。
步骤1)中的计算顺序用Null和整数表示,Null代表公式为独立公式,跟其他报表公式无关;整数为正整数、零或负整数,代表公式的计算顺序,数值越大越优先计算。
步骤2)中的逐批计算报表公式,按照计算顺序由高到低顺序计算,代表计算顺序等整数值相同的可以同批计算。
所述公式计算顺序的计算过程为:
判断当前公式是否被其他公式引用,如果没有被引用,进入分支A;如果被应用进入分支B;
分支A中,判断是否引用其他公式,如果没有引用,进入分支A1:当前公式为独立公式,该公式计算顺序=null,表示任意顺序计算,流程结束;如果有引用,进入分支A2:该公式计算顺序为所有引用公式的计算顺序的最小值-1,流程结束;
分支B中,判断当前公式是否引用其他公式,如果没有引用,进入分支B1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;如果有引用,进入分支B2;
分支B2中,判断最大被引用关系+1是否等于最小引用关系-1:若是,进入分支B1a,该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;若不是,进入分支B1b;
分支B1b中,判断是否首次引用,若是进入B1b1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,所有引用公式等于当前公式计算顺序+1,流程结束;若不是,进入分支B1b2;
分支B1b2中,判断是否首次被引用,若是进入B1b2a:该公式计算顺序为所有引用公式的计算顺序的最小值-1,所有被引用公式等于当前公式计算顺序-1,流程结束;若不是,进入分支B1b2b:报异常提示,公式循环引用,修正公式,流程结束。
本发明的一种基于计算顺序处理前置的集团财务报表计算方法,具有以下优点:
本发明提出的一种基于计算顺序处理前置的集团财务报表计算方法,通过将传统的报表公式计算时处理嵌套关系,排列顺序的方式改成报表公式定义时处理嵌套关系,排定计算顺序的处理方式,能够显著的分散报表计算任务,合理延长计算资源有效利用时间,减少月末报表计算压力,有效提升报表处理性能,实用性强,易于推广。
附图说明
附图1为本发明的报表处理流程图。
附图2为本发明的计算顺序处理流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明提供一种基于计算顺序处理前置的集团财务报表计算方法,将传统的报表公式计算时处理嵌套关系,排列顺序的方式改成报表公式定义时处理嵌套关系,排列顺序的处理方式,能够显著的分散报表计算任务,合理延长计算资源有效利用时间,减少月末出表计算压力,有效提升报表性能。报表计算的关键步骤可分为两步:1、识别报表公式的嵌套引用关系,对公式进行计算顺序排列;2,按顺序计算报表公式。通过将步骤1前置至在报表公式定义时,在集团已定义全部报表公式中排列顺序,分散处理,将显著的减少月末出表的计算压力,提升报表计算的性能。
该方法实际操作前,首先定义以下术语:
报表函数:取报表某单元格数值的表达式。
报表公式:定义在报表某单元格上,由报表函数和常数、数学运算符组成的表达式,一个报表公式可能包含多个报表函数。
公式位置:指报表公式所在的单元格。
取数位置:指报表函数要取数据的单元格。
引用公式:指当前公式中报表函数要取数据的单元格上有其他报表公式。
被公式引用:指存在从当前公式所在单元格取数的其他报表公式。
如附图1所示,其具体实现过程为,
1)在财务报表中定义报表公式,处理该报表公式与其他报表公式的嵌套关系,计算在所有报表公式中的计算顺序,并作为报表公式的属性保存至数据库中,所述报表公式是指在报表某单元格上,由报表函数和常数、数学运算符组成的表达式,一个报表公式包含多个报表函数,该报表函数为取报表某单元格数值的表达式;
其中计算报表公式计算顺序方法的核心代码如下:
publicclass BBFormula {
private int? nCalOrder; // 报表公式计算顺序
private int? nRefOrder; // 被引用顺序,根据公式所在单元格是否被其他报表函数取数计算出的顺序
private int? nQuoOrder; // 引用顺序,根据公式报表函数取数位置有无其他公式计算出的顺序
private bool bFirstRefOrder,bFirstQuoOrder;// 首次被引用标志和首次引用别人标志
bFirstRefOrder =False;
bFirstQuoOrder =False;
private int? GetMaxCalOrderByPosFormla();
/* 功能:
获取已存在公式中含有从当前公式所在位置单元格取数报表函数的公式的最大计算顺序。
主要算法:
若有公式从当前公式所在位置取数,且公式计算顺序不都为null,则返回最大值;
若有公式从当前公式所在位置取数,且公式计算顺序都为null,则将相关公式计算顺序设为-1,且返回-1;
若没有公式从当前公式所在位置取数,则返回null;
*/
private int? GetMinCalOrderByPosFunction();
/* 功能:
获取公式报表取数位置上的公式的最小计算顺序。
主要算法:
若有当前公式取数位置上有其他公式,且公式计算顺序不都为null,则返回最小值;
若有当前公式取数位置上有其他公式,且公式计算顺序都为null,则将相关公式计算顺序设为1,且返回1;
若有当前公式取数位置上有其他公式,则返回null;
*/
private int? getBBFormluaRefOrder() //
{
if (GetMaxCalOrderByPosFormla()==null) //
nRefOrder= null;
else
nRefOrder= GetMaxCalOrderByPosFormla()+1; //如果公式被引用,则公式的计算顺序为最大被引用公式顺序+1
};
private int? getBBFormluaQuoOrder()
{
if (GetMinCalOrderByPosFunction()==null) //
nQuoOrder= null;
else
nQuoOrder= GetMinCalOrderByPosFunction()-1; //如果公式引用其他公式,则公式的计算顺序为最小引用公式顺序-1;
};
private int? getBBFormluaCalOrder()
{
if (nQuoOrder==null && nRefOrder==null) // 当前公式跟其他公式无引用被引用关系
nCalOrder = null;
else
{if (nQuoOrder==null && nRefOrde!=null) // 当前公式仅被其他公式引用
nCalOrder = nRefOrder; // 公式计算顺序为由被引用计算得到的顺序
else
{if (nQuoOrder!=null && nRefOrder==null) //当前公式仅引用其他公式
nCalOrder = nQuoOrder; // 公式计算顺序为由引用关系计算得到的顺序
else
{if (nQuoOrder== nRefOrder ) //该公式被引用且引用其他公式,由两方式计算所得顺序一致
nCalOrder = nQuoOrder; //公式计算顺序为 任一方式计算所得顺序;
else
{if (bFirstRefOrder && bFirstQuoOrder )// 该公式是第一次引用和被引用
{
nCalOrder =0; //公式计算顺序为0;
bFirstRefOrder =False;
bFirstQuoOrder =False;
}
else
{if(!bFirstRefOrder) //该公式是第一次引用其他而不是第一次被其他公式引用
{
nCalOrder= nRefOrder; // 公式计算顺序为由被引用计算得到的顺序 DelQuoCalOrder(); //将该公式引用的公式计算顺序由1改为
nCalOrder+1;
bFirstRefOrder=False;
}
Else
{if(!bFirstQuoOrder) //该公式不是第一次引用其他而是第一次被其他公式引用
{
nCalOrder= nQuoOrde; // 公式计算顺序为由引用关系计算得到的顺序
DelQuoCalOrder(); //将引用该公式的公式计算顺序由-1改为nCalOrder-1;
bFirstQufOrder=False;
}
else
Exception(“报表公式存在循环引用,请修改”);
}
}
}
}
}
}
};
2)对财务报表进行计算,按照计算范围取出所有公式,按照已保存的计算顺序排序,逐批计算报表公式。
步骤1)中的计算顺序用Null和整数表示,Null代表公式为独立公式,跟其他报表公式无关;整数为正整数、零或负整数,代表公式的计算顺序,数值越大越优先计算。
步骤2)中的逐批计算报表公式,按照计算顺序由高到低顺序计算,代表计算顺序等整数值相同的可以同批计算。
如附图2所示,所述公式计算顺序的计算过程为:
判断当前公式是否被其他公式引用,如果没有被引用,进入分支A;如果被应用进入分支B;
分支A中,判断是否引用其他公式,如果没有引用,进入分支A1:当前公式为独立公式,该公式计算顺序=null,表示任意顺序计算,流程结束;如果有引用,进入分支A2:该公式计算顺序为所有引用公式的计算顺序的最小值-1,流程结束;
分支B中,判断当前公式是否引用其他公式,如果没有引用,进入分支B1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;如果有引用,进入分支B2;
分支B2中,判断最大被引用关系+1是否等于最小引用关系-1:若是,进入分支B1a,该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;若不是,进入分支B1b;
分支B1b中,判断是否首次引用,若是进入B1b1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,所有引用公式等于当前公式计算顺序+1,流程结束;若不是,进入分支B1b2;
分支B1b2中,判断是否首次被引用,若是进入B1b2a:该公式计算顺序为所有引用公式的计算顺序的最小值-1,所有被引用公式等于当前公式计算顺序-1,流程结束;若不是,进入分支B1b2b:报异常提示,公式循环引用,修正公式,流程结束。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于计算顺序处理前置的集团财务报表计算方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (2)

1.一种基于计算顺序处理前置的集团财务报表计算方法,其特征在于,其具体实现步骤为:
1)在财务报表中定义报表公式,处理该报表公式与其他报表公式的嵌套关系,计算在所有报表公式中的计算顺序,并作为报表公式的属性保存至数据库中,所述报表公式是指在报表某单元格上,由报表函数和常数、数学运算符组成的表达式,一个报表公式包含多个报表函数,该报表函数为取报表某单元格数值的表达式;
2)对财务报表进行计算,按照计算范围取出所有公式,按照已保存的计算顺序排序,逐批计算报表公式;
上述步骤1)中的计算顺序用Null和整数表示,Null代表公式为独立公式,跟其他报表公式无关;整数为正整数、零或负整数,代表公式的计算顺序,数值越大越优先计算;
所述公式计算顺序的计算过程为:
判断当前公式是否被其他公式引用,如果没有被引用,进入分支A;如果被引用 进入分支B;
分支A中,判断是否引用其他公式,如果没有引用,进入分支A1:当前公式为独立公式,该公式计算顺序=null,表示任意顺序计算,流程结束;如果有引用,进入分支A2:该公式计算顺序为所有引用公式的计算顺序的最小值-1,流程结束;
分支B中,判断当前公式是否引用其他公式,如果没有引用,进入分支B1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;如果有引用,进入分支B2;
分支B2中,判断最大被引用关系+1是否等于最小引用关系-1:若是,进入分支B1a,该公式计算顺序为所有被引用公式的计算顺序的最大值+1,流程结束;若不是,进入分支B1b;
分支B1b中,判断是否首次引用,若是进入B1b1:该公式计算顺序为所有被引用公式的计算顺序的最大值+1,所有引用公式等于当前公式计算顺序+1,流程结束;若不是,进入分支B1b2;
分支B1b2中,判断是否首次被引用,若是进入B1b2a:该公式计算顺序为所有引用公式的计算顺序的最小值-1,所有被引用公式等于当前公式计算顺序-1,流程结束;若不是,进入分支B1b2b:报异常提示,公式循环引用,修正公式,流程结束。
2.根据权利要求1所述的一种基于计算顺序处理前置的集团财务报表计算方法,其特征在于,步骤2)中的逐批计算报表公式,按照计算顺序由高到低顺序计算,代表计算顺序的整数值相同的可以同批计算。
CN201510154178.6A 2015-04-02 2015-04-02 一种基于计算顺序处理前置的集团财务报表计算方法 Active CN104778043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510154178.6A CN104778043B (zh) 2015-04-02 2015-04-02 一种基于计算顺序处理前置的集团财务报表计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510154178.6A CN104778043B (zh) 2015-04-02 2015-04-02 一种基于计算顺序处理前置的集团财务报表计算方法

Publications (2)

Publication Number Publication Date
CN104778043A CN104778043A (zh) 2015-07-15
CN104778043B true CN104778043B (zh) 2017-11-10

Family

ID=53619529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510154178.6A Active CN104778043B (zh) 2015-04-02 2015-04-02 一种基于计算顺序处理前置的集团财务报表计算方法

Country Status (1)

Country Link
CN (1) CN104778043B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874244B (zh) * 2017-01-03 2022-05-20 宁波财经学院 一种基于工作序列的文档自动生成模型的构建方法
CN110955413B (zh) * 2019-11-28 2023-04-18 国网河北省电力有限公司沧州供电分公司 一种财务数据处理系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055569A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN101055568A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的计算方法和装置
CN101055570A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的计算方法和装置
CN101055566A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN103164393A (zh) * 2013-04-12 2013-06-19 中国农业银行股份有限公司 报表公式处理方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055569A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN101055568A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的计算方法和装置
CN101055570A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的计算方法和装置
CN101055566A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN103164393A (zh) * 2013-04-12 2013-06-19 中国农业银行股份有限公司 报表公式处理方法和系统

Also Published As

Publication number Publication date
CN104778043A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN106201537A (zh) 一种数据处理方法及装置
CN105446281B (zh) 工艺腔室的派货方法和系统
CN107656978B (zh) 一种基于函数依赖的多样性数据修复方法
CN111400010B (zh) 任务调度方法及装置
CN104778043B (zh) 一种基于计算顺序处理前置的集团财务报表计算方法
CN113609346B (zh) 基于企业关联关系的自然人人名消歧方法、设备和介质
CN102915344B (zh) 一种sql语句处理方法及装置
CN112016919A (zh) 计算结汇金额的数据处理方法和装置
CN108446989B (zh) 手续费确定方法及终端设备
CN102222285B (zh) 多维度数据联动计算装置和多维度数据联动计算方法
CN104303176A (zh) 查询处理
CN104536831B (zh) 一种基于多目标优化的多核SoC软件映射方法
CN104008178B (zh) 一种数据的动态加载处理方法及系统
CN111432082B (zh) 客服的客户分配方法及装置
CN106775962A (zh) 一种规则执行方法及装置
CN107153662A (zh) 一种数据处理方法及装置
CN104933110B (zh) 一种基于MapReduce的数据预取方法
CN104915250B (zh) 一种实现作业内的MapReduce数据本地化的方法
CN110069527A (zh) 一种面向数据库的gpu和cpu异构加速方法
CN116166440A (zh) 一种基于动态管理的flink流批一体数据处理方法
CN106656841B (zh) 基于Openstack的Nova组件消息队列调度方法、系统和交换优化器
CN105335784B (zh) 一种基于遗传算法的选择最优dsp系统软防护的方法
Ko et al. A Note on Nonparametric Estimation of the CTE
CN105893393A (zh) 数据保存方法及装置
CN109472349A (zh) 神经网络级间激活值量化方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180806

Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee after: Shandong wave cloud Mdt InfoTech Ltd

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: Inspur Group Co., Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 Ji'nan high tech Zone, Shandong, No. 1036 wave road

Patentee before: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.