FML is an integrated extension of the TABLE command. By adding the FOR phrase and the RECAP command, you can handle an expanded range of applications.
Note: MORE is not supported in FML requests.
In conjunction with Dialogue Manager, FML can evaluate "what if" scenarios and develop complete decision support systems. These systems can take advantage of business intelligence features, such as statistical analysis and graphics, in addition to standard financial statements.
Procedures using FML are not hard-wired to the data. As in any other report request, they can easily be changed. FML includes the following facilities:
This example produces a simple asset sheet, contrasting the results of two years. It illustrates many key features of the Financial Modeling Language (FML). Numbers to the left of the procedure lines correspond to explanations that follow the request.
TABLE FILE FINANCE
HEADING CENTER
"COMPARATIVE ASSET SHEET </2"
SUM AMOUNT ACROSS HIGHEST YEAR
WHERE YEAR EQ '1983' OR '1982'
1. FOR ACCOUNT
2. 1000 AS 'UTILITY PLANT' LABEL UTP OVER
2. 1010 TO 1050 AS 'LESS ACCUMULATED DEPRECIATION' LABEL UTPAD OVER
3. BAR OVER
4. RECAP UTPNET = UTP-UTPAD; AS 'TOTAL PLANT-NET' OVER
BAR OVER
2000 TO 3999 AS 'INVESTMENTS' LABEL INV OVER
5. "CURRENT ASSETS" OVER
4000 AS 'CASH' LABEL CASH OVER
5000 TO 5999 AS 'ACCOUNTS RECEIVABLE-NET' LABEL ACR OVER
6000 AS 'INTEREST RECEIVABLE' LABEL ACI OVER
6500 AS 'FUEL INVENTORY' LABEL FUEL OVER
6600 AS 'MATERIALS AND SUPPLIES' LABEL MAT OVER
6900 AS 'OTHER' LABEL MISC OVER
BAR OVER
RECAP TOTCAS=CASH+ACR+ACI+FUEL+MAT+MISC;AS 'TOTAL CURRENT ASSETS' OVER
BAR OVER
7000 AS 'DEFERRED DEBITS' LABEL DEFDB OVER BAR OVER
6. RECAP TOTAL = UTPNET+INV+TOTCAS+DEFDB; AS 'TOTAL ASSETS' OVER
BAR AS '='
FOOTING
"</2 *** PRELIMINARY ASSET SHEET BASED ON UNAUDITED FIGURES ***"
END1000 and 1010 TO 1050 are tags that identify the data values of the FOR field, ACCOUNT in the FINANCE data source. A report row can be associated with a tag that represents a single data value (like 1000), multiple data values, or a range of values (like 1010 TO 1050).
The output is shown as follows.
