第十篇.HFM规则入门(三:深入使用exp函数)

本文详细介绍了HFM中exp函数在处理维度交叉点时的使用,包括有效和无效组合的场景,强调了等号两侧维度组合对应的重要性,以及在计算多个科目时的注意事项。建议读者重点研读关于维度交叉点考虑因素的部分。
摘要由CSDN通过智能技术生成

第八篇介绍的是exp函数右边是一个数值的场景,实际场景中用的更多的是exp函数左右两边都是维度组合(也叫P OV ),而非数值。今天深入探讨exp函数的使用。

1、维度交叉点考虑因素

如果不指定 Exp 从中获取数据以及 Exp 放入数据的维交叉点,则源和目标交叉点由下列因素决定:

· 目标(等号 左边 )。如果未在等号左侧指定任何ICP维或C1-Cn维的成员,则 Exp 会将数据写入所有与ACCOUNT维度为有效组合的POV上。

· 源(等号 右边 )。如果未在等号的右侧指定维的成员,则存在下列几种可能:

o 如果维只有一个成员,则  Exp  会从此成员与源科目的交叉点获取数据。

o 如果维与源科目只有一个有效的交叉点,则  Exp  会从此交叉点获取数据。

o 如果维与源科目有几个交叉的成员,则数据的源交叉点由等式左侧决定:

  1)如果在左侧指定了一个成员,则  Exp  会尝试从此成员与源科目的交叉点获取数据。

  2)如果未在左侧指定任何成员,则  Exp  将尝试将数据置于目标科目与维成员的每个有效交叉点。 Exp  将从该成员与源科目的相应交叉点获取目标交叉点的数据。

注:

如果源交叉点无效,则  Exp  不会更改相应目标交叉点中的数据。

总结下:笔者认为就两点

1)就是前面的文章也提到的,exp函数左右的维度组合个数(POV)最好要对应,能明确的维度一定要显示写出来。通常规则是:

Hs.exp “A#.I#.C1#.Cn#= A#.I#.C1#.Cn#”

规则中一般只用account、ICP,C1-Cn维度,这一点很重要。

2)等号两边的科目需要特别注意,比如等号左边的POV中科目属性是ICP科目(isicp=Y),等号右边的科目是非ICP科目(isicp=N)。所以写规则的时候特别要关注等号左右两边科目的属性(CnTOPMEMBER,ISICP,ISconsolidated等)

2、同时计算多个科目

--->要将数据插入与当前视点交叉的所有科目中,可将  All  用于帐户表达式中。您可以使用此方法来设置所有科目的期初余额。在以下示例中, IsFirst  函数将测试当前期间是否是第一个期间。如果是第一个期间,则  Exp  会将当前期间每个科目的值设置为前一年最后一个期间的科目值。

  If HS.Period.IsFirst = TRUE Then
     

   HS.Exp "A#ALL = A#ALL.Y#PRIOR.P#LAST"
     

  End If
上面这段的变种其实就是我们常见的年初数结转规则,如下:
 If HS.Period.IsFirst = TRUE Then
     

  HS.Exp "A#ALL.C1#movbeg01 = A#ALL.C1#[None].Y#PRIOR.P#LAST"
     

 End If

实际业务中,主要是资产负债类的科目的年初结转,我们知道,资产负债表的第一列是年初数据,

第二列是期末数据。年初数数据就是上面这段规则计算出来的

(实际使用时涉及到增减变动的结转,会略复杂)。

 
     

</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值