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

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

Info

Publication number
CN104778043A
CN104778043A CN201510154178.6A CN201510154178A CN104778043A CN 104778043 A CN104778043 A CN 104778043A CN 201510154178 A CN201510154178 A CN 201510154178A CN 104778043 A CN104778043 A CN 104778043A
Authority
CN
China
Prior art keywords
formula
report
branch
computation sequence
formulae discovery
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.)
Granted
Application number
CN201510154178.6A
Other languages
English (en)
Other versions
CN104778043B (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 (4)

1.一种基于计算顺序处理前置的集团财务报表计算方法,其特征在于,其具体实现过程为:
1)在财务报表中定义报表公式,处理该报表公式与其他报表公式的嵌套关系,计算在所有报表公式中的计算顺序,并作为报表公式的属性保存至数据库中,所述报表公式是指在报表某单元格上,由报表函数和常数、数学运算符组成的表达式,一个报表公式包含多个报表函数,该报表函数为取报表某单元格数值的表达式;
2)对财务报表进行计算,按照计算范围取出所有公式,按照已保存的计算顺序排序,逐批计算报表公式。
2.根据权利要求1所述的一种基于计算顺序处理前置的集团财务报表计算方法,其特征在于,步骤1)中的计算顺序用Null和整数表示,Null代表公式为独立公式,跟其他报表公式无关;整数为正整数、零或负整数,代表公式的计算顺序,数值越大越优先计算。
3.根据权利要求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:报异常提示,公式循环引用,修正公式,流程结束。
4.根据权利要求2或3所述的一种基于计算顺序处理前置的集团财务报表计算方法,其特征在于,步骤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 true CN104778043A (zh) 2015-07-15
CN104778043B 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)

Cited By (2)

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055566B (zh) * 2007-05-25 2010-06-09 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN100483397C (zh) * 2007-05-25 2009-04-29 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN100483396C (zh) * 2007-05-25 2009-04-29 金蝶软件(中国)有限公司 一种电子数据表、电子数据表的单元的计算方法和装置
CN100483398C (zh) * 2007-05-25 2009-04-29 金蝶软件(中国)有限公司 一种电子数据表的计算方法和装置
CN103164393B (zh) * 2013-04-12 2016-03-09 中国农业银行股份有限公司 报表公式处理方法和系统

Cited By (4)

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

Also Published As

Publication number Publication date
CN104778043B (zh) 2017-11-10

Similar Documents

Publication Publication Date Title
Beletskaya et al. Specific features of modeling and developing the mathematical and program software for designing intranet-interfaces during competitive development of information systems
US20160246842A1 (en) Query optimization adaptive to system memory load for parallel database systems
CN102393839B (zh) 并行数据处理系统及方法
CN112084269B (zh) 数据质量计算方法、装置、存储介质及服务器
CN102915344B (zh) 一种sql语句处理方法及装置
CN108334408B (zh) 代码执行方法、装置、终端设备及计算机可读存储介质
CN106201537A (zh) 一种数据处理方法及装置
WO2021073196A1 (zh) 基于高精度取舍方式的误差可控的数据处理系统及方法
CN112507098B (zh) 问题处理方法、装置、电子设备、存储介质及程序产品
US20210209690A1 (en) Order matching
CN108446989B (zh) 手续费确定方法及终端设备
CN104778043A (zh) 一种基于计算顺序处理前置的集团财务报表计算方法
GB2599334A (en) Feature engineering in neural networks optimization
CN104008178B (zh) 一种数据的动态加载处理方法及系统
CN107153662A (zh) 一种数据处理方法及装置
Zheng et al. Fourier transform algorithms for pricing and hedging discretely sampled exotic variance products and volatility derivatives under additive processes
Valdez et al. Optimal portfolio in a regime-switching model
CN111695153A (zh) 一种多叉树森林k-匿名方法、系统、设备和可读存储介质
CN108427773B (zh) 一种分布式知识图谱嵌入方法
CN113570454B (zh) 一种债务数据智能比对方法、装置及存储介质
CN106156162A (zh) 数据库查询量统计方法和设备
CN105893393B (zh) 数据保存方法及装置
CN106656841B (zh) 基于Openstack的Nova组件消息队列调度方法、系统和交换优化器
Zadeh Construction of efficient tree networks: the pipeline problem
CN103399789A (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

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.

TR01 Transfer of patent right
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.

CP03 Change of name, title or address