Les modèles impliquant différentes périodes exigent souvent qu'on utilise la valeur finale d'une période comme la première valeur de la prochaine période. Les calculs qui décrivent ces situations ont deux caractéristiques :
Les modèles récurisifs exigent que les colonnes soient produites dans l'ordre séquentiel, une à une. Dans les modèles non-récursifs, toutes les colonnes peuvent êtres produites simultanément. Schématiquement, ces modèles sont affichés comme ce qui suit.
FML bascule automatiquement vers l'ordre séquentiel dès qu'une des deux conditions de modélisation exigant cette action est reconnue, voire la réutilisation de labels par différentes rangées, ou des références futures vers un label dans un calcul.
L'exemple suivant illustre les modèles récursifs. Notez qu'une année de ENDCASH devient l'année suivante de STARTING CASH
DEFINE FILE REGION CUR_YR=E_ACTUAL; LAST_YR=.831*CUR_YR; NEXT_YR=1.2297*CUR_YR; END TABLE FILE REGION SUM LAST_YR CUR_YR NEXT_YR FOR ACCOUNT 10$$ AS 'STARTING CASH' LABEL STCASH OVER RECAP STCASH(2,*) = ENDCASH(*-1); OVER " " OVER 3000 AS 'SALES' LABEL SLS OVER 3100 AS 'COST' LABEL COST OVER BAR OVER RECAP PROFIT/I5C = SLS - COST; OVER " " OVER RECAP ENDCASH/I5C = STCASH + PROFIT; END
La sortie est montrée comme ce qui suit :
WebFOCUS |