计算指定帐户之前期间值的总计。
返回值
返回一个字符串,表示要在 HS.EXP 函数中使用的正确表达式。
语法
Cumulative (PointOfView, View, NumPeriod)
表 12-5 Cumulative 函数的语法
参数 | 有效值 |
---|---|
PointOfView |
帐户、Custom1….4、ICP 成员的有效组合,例如 "A#CASH.C1#[None].I#[ICP Top]" |
View |
必须是下列值之一: "" "(双引号)- 基于为正在处理的方案定义的默认视图(YTD 或 Periodic)。 YTD - 用户指定年初至今选项,将覆盖为方案设置的默认视图。 Periodic - 用户指定周期性选项,将覆盖为方案设置的默认视图。 |
NumPeriod |
表示当前方案中要累计的期间数的整数,从当前期间开始计算。 如果 NumPeriod 为 0 或负值,则该函数将从当年年初开始累计。 |
详细说明
此函数计算指定帐户的指定期间总和或年初至今总和。默认情况下,累计数据的视图采用方案默认值;但是,可以为流类型帐户覆盖此默认值。
如果 View 参数为 YTD,则该函数将累计年初至今值。
如果 View 参数为 Periodic,则该函数将累计周期值。
如果 View 参数为空白 (" "),则该函数将使用方案默认视图来累计数据。
示例
对于 2014 年 1 月、2 月和 3 月,CASH 帐户将根据 Cumulative 函数中使用的 Number 参数返回以下值。
对于 2014 年 1 月、2 月和 3 月,SALES 帐户将根据 Cumulative 函数中使用的 View 和 Number 参数返回以下值。为正在处理的方案设置的默认视图是 YTD。
表 12-6 Cumulative 函数的示例
帐户 | Oct2013 | Nov2013 | Dec2013 | Jan2014 | Feb2014 | Mar2014 |
---|---|---|---|---|---|---|
A#Cash |
1,000 |
1,500 |
1,200 |
800 |
1,100 |
1,300 |
Cumulative ("A#Cash","0") |
不适用 |
不适用 |
不适用 |
800 |
1,900 |
3,200 |
Cumulative("A#Cash", "3") |
不适用 |
不适用 |
不适用 |
3,500 |
3,100 |
3,200 |
A#Sales |
9,000 |
10,500 |
11,700 |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "0") |
不适用 |
不适用 |
不适用 |
800 |
2,700 |
5,900 |
Cumulative("A#Sales", "Periodic", "0") |
不适用 |
不适用 |
不适用 |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "Periodic", "3") |
不适用 |
不适用 |
不适用 |
3,500 |
3,100 |
3,200 |
示例脚本
' sample statement written in the calling routine
Sub Calculate()
HS.EXP "A#TOT_Cash =" &Cumulative("A#Cash","" ,0)
End Sub
' programming of the Cumulative function
Function Cumulative(StrPov, StrVIEW, nPERIOD)
DIM strCUM DIM i
IF nPERIOD <= 0 THEN
nPERIOD = HS.PERIOD.NUMBER() - 1
ELSE
nPERIOD = nPERIOD - 1
END IF
IF strVIEW = "" THEN
strVIEW = HS.SCENARIO.DEFAULTVIEW("")
END IF
strPOV = UCASE(strPOV) strVIEW = UCASE(strVIEW)
IF strVIEW = "PERIODIC" THEN
strVIEW = ".W#PERIODIC"
ELSEIF strVIEW = "YTD" THEN
strVIEW = ".W#YTD"
ELSE
EXIT FUNCTION
END IF
FOR i = 0 TO nPERIOD
IF i = 0 THEN
strCUM = strPOV & strVIEW
ELSE
strCUM = strCUM &"+" & strPOV & strVIEW &".P#CUR-" &i
END IF
NEXT
Cumulative = ""("" & strCUM &"")
END FUNCTION