Los informes FML pueden hacer referencia a columnas y filas explícitas. Puede hacer referencia a columnas mediante:
La solicitud siguiente produce una matriz FML con cuatro filas y tres columnas de datos.
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
TABLE FILE LEDGER
SUM CUR_YR AS 'CURRENT,YEAR'
LAST_YR AS 'LAST,YEAR'
COMPUTE CHANGE/I5C = CUR_YR - LAST_YR;
FOR ACCOUNT
1010 AS 'CASH ON HAND' OVER
1020 AS 'DEMAND DEPOSITS' OVER
1030 AS 'TIME DEPOSITS' OVER
BAR OVER
RECAP TOTCASH/I5C = R1 + R2 + R3; AS 'TOTAL CASH'
END
Se puede hacer referencia en otro informe tanto de las columnas del informe como de las celdas de la matriz.
La salida se muestra en la siguiente imagen.
Por ejemplo, podría usar el valor 6,499 en otro informe FML, con sólo hacer referencia a la columna 2, fila 3. Para más información, consulte Cómo hacer referencia a celdas en cálculos.
Puede efectuar un cálculo para una columna o un conjunto específico de columnas. Para identificar las columnas, coloque el número de la columna entre paréntesis después del nombre de la etiqueta.
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
TABLE FILE LEDGER
SUM CUR_YR AS 'CURRENT,YEAR'
LAST_YR AS 'LAST,YEAR'
FOR ACCOUNT
1010 AS 'CASH ON HAND' OVER
1020 AS 'DEMAND DEPOSITS' OVER
1030 AS 'TIME DEPOSITS' OVER
BAR OVER
RECAP TOTCASH/I5C = R1 + R2 + R3; AS 'TOTAL CASH' OVER
" " OVER
RECAP GROCASH(2)/F5.2 = 100*TOTCASH(1)/TOTCASH(2) - 100;
AS 'CASH GROWTH(%)'
END
En la segunda expresión RECAP, fíjese que:
El valor RECAP se calcula solamente para la columna especificada.
La salida se muestra en la siguiente imagen.
Una vez terminada la recuperación de datos, se calcula una sola columna completa de inmediato y múltiples columnas una por una.
Cuando necesite un conjunto de columnas contiguas en un RECAP, puede separar con comas los números de la primera y la última columna. Por ejemplo, DIFFERENCE (2,5) indica que desea calcular los resultados de las columnas 2 hasta la 5.
En este ejemplo el cálculo RECAP para ATOT tiene lugar sólo para las columnas 2 y 3, como se especifica en la solicitud. No se realiza cálculo alguno para la columna 1.
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
NEXT_YR/I5C=1.13*CUR_YR + 222;
END
TABLE FILE LEDGER
SUM NEXT_YR CUR_YR LAST_YR
FOR ACCOUNT
10$$ AS 'CASH' OVER
1100 AS 'ACCOUNTS RECEIVABLE' OVER
1200 AS 'INVENTORY' OVER
BAR OVER
RECAP ATOT(2,3)/I5C = R1 + R2 + R3;
AS 'ASSETS--ACTUAL'
END
La salida se muestra en la siguiente imagen.
Cómo: |
Cuando necesite calcular columnas intercaladas o con dos columnas intercaladas, puede hacerlo proveyendo un factor o dirección de columna. Poner direcciones a las columnas es útil cuando se muestran varios campos de datos en cada valor de una clasificación por columnas.
La parte izquierda de la expresión tiene esta forma:
value(s,e,i)[/format]=
donde:
Es el nombre asignado al resultado del cálculo RECAP.
Es la columna de inicio.
Es la columna final (podría ser * para indicar todas las columnas).
Es el factor de incremento.
Es el formato USAGE del valor calculado. El valor predeterminado es el formato de la columna original.
En la siguiente muestra hay dos columnas para cada mes:
SUM ACTUAL AND FORECAST ACROSS MONTH
Si deseara realizar un cálculo sólo para los datos ACTUAL, controle la colocación de los resultados con RECAP de la manera siguiente:
RECAP calcname(1,*,2)=expression;
El asterisco significa que debe continuar la RECAP para todas las columnas nones (empezando en la columna 1 con un incremento de 2 para todas las columnas).
Un cálculo puede usar una columna específica como base y hacer referencia al resto de las columnas mediante a su desplazamiento respecto de esa columna. La columna situada a la izquierda de la columna base presenta un desplazamiento de -1 en relación a la columna base. La columna de la derecha tiene un desplazamiento de +1. Por ejemplo,
COMP=FIX(*)-FIX(*-1);
puede hacer referencia al cambio en los activos fijos entre un período y el próximo. La referencia a COMP=FIX(*) equivale a COMP=FIX.
Cuando se refiera a una columna previa, la columna debe haber sido recuperada de antemano o su valor será cero.
Este ejemplo calcula el cambio en efectivo (CHGCASH) en las columnas 1 y 2.
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
NEXT_YR/I5C=1.13*CUR_YR + 222;
END
TABLE FILE LEDGER
SUM NEXT_YR CUR_YR LAST_YR
FOR ACCOUNT
10$$ AS 'TOTAL CASH' LABEL TOTCASH OVER
" " OVER
RECAP CHGCASH(1,2)/I5SC = TOTCASH(*) - TOTCASH(*+1); AS 'CHANGE IN CASH'
END
La salida se muestra en la siguiente imagen.
Cómo: |
La notación de columnas asigna un número secuencial de columna a cada columna en la matriz interna creada para una solicitud de informe. Si desea controlar la creación de números de referencia de columnas para las columnas que se usan en su informe, use el comando de notación de columna CNOTATION.
Dado que los números de columna se refieren a columnas en la matriz interna, se asignan después que han terminado de recuperarse y fundirse los datos. Las columnas creadas y mostradas en un informe se clasifican en la matriz interna, en tanto que las columnas que no aparecen en un informe se pueden producir y guardar en la matriz interna también. Las columnas almacenadas en la matriz interna incluyen valores calculados, valores de campo reformateados, campos BY, campos con la opción NOPRINT y ciertos cálculos RECAP tales como FORECAST y REGRESS. A cada columna intercalada se le asigna un número de columna predeterminado en la matriz interna, lo cual significa que debe tener en cuenta todas las columnas producidas internamente si desea hacer referencia al valor de columna correspondiente en su solicitud.
Puede cambiar la asignación predeterminada de números de referencia de columnas mediante el comando SET CNOTATION=PRINTONLY, que asigna números de columna sólo a las columnas que aparezcan en la salida de informe. Puede utilizar notación de columnas en comandos COMPUTE y RECAP para hacer referencia a estas columnas en su informe.
SET CNOTATION={ALL|PRINTONLY|EXPLICIT}
donde:
Asigna números de referencia de columna a cada columna en la matriz interna. ALL es el valor predeterminado.
Asigna números de referencia de columna sólo a las columnas que aparecen en la salida de informe.
Asigna números de referencia de columna a todos los campos mencionados en la solicitud, independientemente de que se muestren o no.
Tenga en cuenta que: CNOTATION no es admitido en una frase ON TABLE.
Cuando se clasifica un informe mediante una frase ACROSS, todos los valores recuperados se alinean bajo las columnas correspondientes. Cada columna tiene un título que consta de un valor del campo ACROSS. En un cálculo RECAP, se puede hacer referencia a la columna de datos complete mediante este valor.
La siguiente solicitud usa un factor que depende del valor del campo ACROSS (YEAR) para calcular el costo del inventario de cada año. Luego, calcula el beneficio sumando los activos y restando el coste de inventario anual.
TABLE FILE LEDGER
SUM AMOUNT ACROSS YEAR
FOR ACCOUNT
10$$ AS 'CASH' LABEL CASH OVER
1100 AS 'ACCOUNTS RECEIVABLE' LABEL RECEIVE OVER
BAR OVER
1200 AS 'INVENTORY VALUE' LABEL INVENT OVER
RECAP INVENTORY_FACTOR/F5.2 = IF YEAR LT '1986'
THEN 1.1 ELSE 1.25; AS 'INVENTORY COST FACTOR' OVER
RECAP INVENTORY_COST = INVENTORY_FACTOR * INVENT;
AS 'INVENTORY COST' OVER
BAR OVER
RECAP PROFIT = CASH + RECEIVE - INVENTORY_COST;
END
La salida se muestra en la siguiente imagen.
WebFOCUS |