針對指定的帳戶,計算先前期間的值總計。
傳回值
傳回字元字串,代表要作為 HS.EXP 函數一部分使用的正確表示式。
語法
Cumulative (PointOfView, View, NumPeriod)
表格 12-5 Cumulative 函數的語法
參數 | 有效值 |
---|---|
PointOfView |
Account、Custom1….4、ICP 成員的有效組合,例如「A#CASH.C1#[None].I#[ICP Top]」 |
View |
必須為以下值之一: "" " " (雙引號) - 依據為要處理的案例所定義的預設檢視 (YTD 或 Periodic)。 YTD - 使用者指定迄今年度選項,這個選項會置換案例的預設檢視設定。 Periodic - 指定定期選項,這個選項會置換案例的預設檢視設定。 |
NumPeriod |
整數代表要累計之目前案例中的期間數量,從目前期間開始。 如果 NumPeriod 是 0 或負數,函數就會從目前年度期初開始彙總。 |
詳細說明
這個函數會針對指定帳戶,來計算指定的期間總數或迄今年度總數。依預設,累計的資料檢視是案例預設;但是,您可以針對流程類型帳戶置換這個檢視。
如果 View 參數是 YTD,則函數會累計迄今年度值。
如果 View 參數是 Periodic,則函數會累計定期值。
如果 View 參數是空白 ( " " ),則函數會使用案例預設檢視來累計資料。
範例
CASH 帳戶會根據 Cumulative 函數中使用的 Number 參數,傳回 2014 年一月、二月和三月的這些值。
SALES 帳戶會根據 Cumulative 函數中使用的 View 和 Number 參數,傳回 2014 年一月、二月和三月的這些值。要處理的案例預設檢視設定為 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") |
N/A |
N/A |
N/A |
800 |
1,900 |
3,200 |
Cumulative("A#Cash", "3") |
N/A |
N/A |
N/A |
3,500 |
3,100 |
3,200 |
A#Sales |
9,000 |
10,500 |
11,700 |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "0") |
N/A |
N/A |
N/A |
800 |
2,700 |
5,900 |
Cumulative("A#Sales", "Periodic", "0") |
N/A |
N/A |
N/A |
800 |
1,900 |
3,200 |
Cumulative("A#Sales", "Periodic", "3") |
N/A |
N/A |
N/A |
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