【星瀚合并报表/财务报表】中,如何通过录入本年累计数计算本期数原创
金蝶云社区-Dkx
Dkx
3人赞赏了该文章 491次浏览 未经作者许可,禁止转载编辑于2023年08月17日 19:47:22

一、业务场景

  • 在财务报表中,本年累计数与本期数间存在逻辑的相互依赖关系,通过录入本年累计数计算本期数,可减少本期数的取数、抵销等配置工作。

  • 基本逻辑:本期数=本期本年累计数-上期本年累计数


二、解决方案

方案1:

在情景中限制输入类型,实现本期数的倒算,以月报成员为例,具体设置如下图

image.png

【注意事项】:【可输入变动类型】中选中【本年累计】后,系统会限制通过报表编制功能录入本期数,若需手工录入本期数,则需要选择全部类型。


方案2:

在【系统配置】-【业务规则】中配置业务规则,根据本年累计数计算本期数。


// 当前期间的上期间,需要注意的是如果使用了13,那么13期的上期是111期的上期还是1

let CTX_P_LAST = ctx.P.lastPeriod()  //获取当前期间的上一期间

if (CTX_P_CODE == "M_M01") {

CTX_P_LAST = "M_M01";};

if (CTX_P_CODE == "M_M013") {

CTX_P_LAST = "M_M11";};


//1月的本期=1月的本年累计;其他月份的本期=本期的本年累计-上期的本年累计13期的本期=本期的本年累计-11期的本年累计,包含了12期本期数和13期调整数

//此业务规则需要分配给EJE等过程成员,这样抵销数等才会参与该计算

let sc = scope(A["R2001"].base(),其他维度).except(A.in("1001"));

let vExp = "v('CT@CurrentPeriod') = v('CT@YTD') - v('CT@YTD,P@" + CTX_P_LAST + "')";

if(CTX_P_CODE == "M_M01"){

vExp = "v('CT@CurrentPeriod') = v('CT@YTD')";

};

runs(sc,vExp);


【注意事项】

       1.当前期间的上期间,需要注意的是如果使用了13,那么13期的上期是111期的上期还是1期;

       2.业务规则需要分配给EJE等过程成员,这样抵销数等才会参与该计算 。



赞 3