請考慮使用下列指令碼,其假設 SalesYTD
是 Sample.Basic
中 Ratios
的子項 (其中科目和時間為密集)。
SET UPDATECALC OFF; "SalesYTD"( IF(@ismbr("Jan")) "SalesYTD" = "Sales"; Else "SalesYTD"="Sales" + @prior("SalesYTD"); Endif)
在此範例中,雖然資料的第 11/12 項符合 ELSE 條件,但只有資料的第 1/12 項才符合 IF 條件。此外,SalesYTD 成員是以「儲存格」模式進行計算,表示會先計算一月 (因為它出現在大綱中的第一個),而不管 IF 順序為何。您可以在 IF 陳述式中使用 NOT,以最佳化此指令碼,如下列範例所示:
SET UPDATECALC OFF; "SalesYTD"( IF(NOT(@ismbr("Jan"))) "SalesYTD" = "Sales" + @prior("SalesYTD"); Else "SalesYTD"="Sales"; Endif)