Considérez le script suivant, qui suppose que SalesYTD
est un enfant de Ratios
dans Sample.Basic
(où Comptes et Temps sont des dimensions denses).
SET UPDATECALC OFF; "SalesYTD"( IF(@ismbr("Jan")) "SalesYTD" = "Sales"; Else "SalesYTD"="Sales" + @prior("SalesYTD"); Endif)
Dans cet exemple, alors que 11/12e des données répondent à la condition ELSE, seulement 1/12e des données répond à la condition IF. De plus, le membre SalesYTD est calculé en mode cellule, ce qui signifie que Jan est calculé en premier quel que soit l'ordre de l'instruction IF car il apparaît en premier dans l'outline. Vous pouvez optimiser ce script en utilisant NOT dans l'instruction IF comme illustré dans l'exemple suivant :
SET UPDATECALC OFF; "SalesYTD"( IF(NOT(@ismbr("Jan"))) "SalesYTD" = "Sales" + @prior("SalesYTD"); Else "SalesYTD"="Sales"; Endif)