表示式與函數

表示式可讓您在「值/表示式」欄位中執行如下:

  • 執行簡單的數學方程式。

  • 使用 CURVAL 參數以指定邏輯科目運算的值。請注意,CURVAL 參數可以用在表示式中,就像用在邏輯函數中一樣,不過在表示式中必須用豎線將 CURVAL 括起來。例如,CURVAL 表示式包含使用 |Account| 標記法的科目規格,以及使用實體、類別、期間和科目之 POV 詳細資料的值規格。

函數允許使用帶有運用 Jython 語法之 if/else 的簡單邏輯。Jython 命令可用於函數中,並且會比表示式更加複雜。

表示式

表示式運算子用於執行「值/表示式」欄位中定義的自訂邏輯表示式。邏輯表示式不能使用變數或 If 陳述式,因而比邏輯函數簡單。除 |CURVAL| 外,表示式沒有其他內建參數。您不需要為表示式指派 RESULT 值。

表示式的執行速度比邏輯函數快。您可在表示式中使用資料管理 查詢函數,就像用在邏輯函數中一樣。若要寫入自訂表示式,請連按兩下「值/表示式」欄位,以開啟表示式編輯器。

|CURVAL| + |810| + |238|

以上函數使用資料管理查詢函數,將兩個來源科目新增至邏輯科目的值。請注意,CURVAL 參數可以用在表示式中,就像用在邏輯函數中一樣,不過在表示式中必須用垂直線將 CURVAL 括起來。

(|CURVAL| + |000,10,09/30/01,810|) * 100

上述函數使用資料管理查詢函數,將來源科目 (810) 和來自指定中心、資料管理類別和資料管理期間的來源科目新增至邏輯科目,然後將結果總合乘以 100。

函數

函數運算子用於執行在「值/運算式」欄位中定義的自訂邏輯函數。

若要撰寫函數,請從「邏輯項目」行的「運算子」下拉清單中選取「函數」,然後按一下「編輯」圖示以開啟編輯視窗。邏輯函數通常用於條件對映和涉及多個來源科目的複雜運算。邏輯函數可使用 Jython 命令,包含變數、if/elif/else 陳述式、數值函數,以及其他 Jython 結構。

邏輯函數可使用預先定義的函數參數,也要求您指派值至 RESULT 變數,以便可針對新建立的邏輯科目更新值。邏輯函數中可使用下列函數參數,而且這些參數不需要使用 "|" 標記法:

表格 4-22 函數運算子及描述

函數運算子 描述
CURVAL 邏輯科目運算的來源值
StrLocation 作用中的位置名稱
StrCenter 邏輯科目實體
StrCatKey 作用中類別索引鍵,非名稱。您也需要查詢資料庫中的類別索引鍵以使用參數。
StrPerKey 作用中期間
Entity、Category、Period、Account| 查詢邏輯函數中可能會使用的標記法。這是邏輯表示式中提供的相同標記法。
Skip 如果已將 "Skip" 指派至關鍵字 RESULT,則不會建立邏輯科目。

您可以使用大寫字母、小寫字母或混合大小寫字母來定義函數參數。但是,關鍵字 RESULT 必須使用大寫字母。

指派函數傳回值

「邏輯函數」的結果必須指派給關鍵字 RESULT。如果沒有向 RESULT 關鍵字指派傳回值,邏輯引擎會將結果值設為零。這樣會造成跳過計算,因而不會建立邏輯科目。

當邏輯科目計算傳回大於零的值時,下列函數會將邏輯科目計算的結果 (使用 CURVAL 參數) 指派至邏輯科目 (RESULT)。如果未符合第一個條件,則會因關鍵字 "Skip" 而不建立邏輯科目。

if CURVAL > 0:
   RESULT = CURVAL
else:
    RESULT = "Skip"

註:

邏輯函數必須使用 Jython 標記法和縮排。

下列函數僅在使用中的資料管理類別索引鍵為 "10" 時,才將邏輯科目計算的結果指派給邏輯科目。

if StrCatKey == "10":
    RESULT = CURVAL
else:
    RESULT="Skip"

此函數僅在「條件科目實體」為 "000" 時,才將邏輯科目計算的結果指派給邏輯科目。

if StrCenter == "000":
    RESULT = CURVAL * 100
else:
    RESULT="Skip"

此函數使用資料管理查詢函數,在目前資料管理期間為 "Dec 2013" 時,將來源科目 (810) 新增至邏輯科目值。

if StrPerKey == "12/31/2013":
    RESULT = CURVAL + |810|
else:
    RESULT="Skip"

此函數使用資料管理查詢函數,當作用中的位置為 "Texas" 時,將來自不同實體、資料管理類別和 資料管理期間的另一個來源科目新增至邏輯科目。

If StrLocation == "Texas":
    RESULT = CURVAL + |000,10,09/30/13,810|
else:
    RESULT="Skip"