次のスクリプトを考えてみましょう。SalesYTD
は、Sample.Basic
内のRatios
の子であるとします(「勘定科目」と「時間」は密です)。
SET UPDATECALC OFF; "SalesYTD"( IF(@ismbr("Jan")) "SalesYTD" = "Sales"; Else "SalesYTD"="Sales" + @prior("SalesYTD"); Endif)
この例では、データの12分の11がELSE条件を満たす一方で、IF条件を満たすのはデータの12分の1のみです。さらに、SalesYTDメンバーはセル・モードで計算されるため、アウトラインで最初に出現する1月は、IFの順序に関係なく、最初に計算されます。次の例に示すように、IF文でNOTを使用することによって、このスクリプトを最適化できます:
SET UPDATECALC OFF; "SalesYTD"( IF(NOT(@ismbr("Jan"))) "SalesYTD" = "Sales" + @prior("SalesYTD"); Else "SalesYTD"="Sales"; Endif)