En esta sección: |
Se pueden definir relaciones jerárquicas entre campos en un archivo máster y mostrarlas automáticamente con el Lenguaje de modelos financieros (FML). Los campos principal y secundario deben compartir los valores de datos y su relación debe ser jerárquica. Los formatos de los campos principal y secundario deben ser numéricos o alfanuméricos.
Por ejemplo, supongamos que:
o
Al examinar estos campos, es posible construir todo el organigrama de la empresa o de la estructura de cuentas. Sin embargo, para imprimir dicho organigrama en un informe FML tradicional, necesita listar las identificaciones de los empleados o los números de cuenta en la sintaxis de solicitud en el orden en que deben aparecer en el informe. Si se añade, se elimina o se transfiere un empleado o una cuenta, tiene que cambiar la solicitud de informe para reflejar el cambio en el organigrama. Por ejemplo:
TABLE FILE EMPLOYEE PRINT DEPARTMENT CURR_JOBCODE FOR EMP_ID 999999999 OVER 222222222 OVER . . .
A diferencia de lo anterior, con las jerarquías FML puede definir la relación jerárquica existente entre dos campos en el archivo máster y cargar esta información en la memoria. La solicitud FML puede entonces construir de manera dinámica las filas que representan esta relación y mostrarlas en el informe, empezando en cualquier punto de la jerarquía. En el ejemplo mostrado, EMP_ID se identifica como el campo de jerarquía.
Se debe cargar la jerarquía en la memoria. A esta jerarquía cargada se le llama diagrama. Si se define la jerarquía en el archivo máster y se menciona en la solicitud FML, se carga automáticamente. Si desea utilizar una jerarquía definida en un archivo máster que no ha sido mencionado en la solicitud FML o combinado con el archivo máster mencionado en la solicitud FML, emita el comando LOAD CHART antes de emitir la solicitud FML.
Se pueden cargar hasta dieciséis diagramas. Los diagramas se descargan automáticamente cuando termina la sesión.
Para utilizar jerarquías FML, el campo FOR debe ser:
o
En otras palabras, el campo FOR debe encontrarse en una jerarquía de principal-secundario o debe estar vinculado a una de ellas. El último caso admite datos de transacción que contengan el campo de jerarquía que se va a unir al origen de datos independiente, que incluye la definición de la jerarquía.
Como con cualquier otra solicitud FML, se muestra una fila etiquetada, incluso cuando en el archivo no existen datos para los valores de datos, con un punto (.) que representa los datos no disponibles. Puede anular esta convención añadiendo la frase WHEN EXISTS a la definición de una fila etiquetada. Esta acción hará que sólo aparezca la fila si existen datos para esa etiqueta.
El archivo máster CENTGL contiene una jerarquía de diagrama de cuentas. El campo GL_ACCOUNT_PARENT es el campo principal de la jerarquía. El campo GL_ACCOUNT es el campo de jerarquía. El campo GL_ACCOUNT_CAPTION puede usarse como leyenda descriptiva del campo de jerarquía.
FILE=CENTGL ,SUFFIX=FOC SEGNAME=ACCOUNTS,SEGTYPE=S01 FIELDNAME=GL_ACCOUNT, ALIAS=GLACCT, FORMAT=A7, TITLE='Ledger,Account', FIELDTYPE=I, $ FIELDNAME=GL_ACCOUNT_PARENT, ALIAS=GLPAR, FORMAT=A7, TITLE=Parent, PROPERTY=PARENT_OF, REFERENCE=GL_ACCOUNT, $ FIELDNAME=GL_ACCOUNT_TYPE, ALIAS=GLTYPE, FORMAT=A1, TITLE=Type,$ FIELDNAME=GL_ROLLUP_OP, ALIAS=GLROLL, FORMAT=A1, TITLE=Op, $ FIELDNAME=GL_ACCOUNT_LEVEL, ALIAS=GLLEVEL, FORMAT=I3, TITLE=Lev, $ FIELDNAME=GL_ACCOUNT_CAPTION, ALIAS=GLCAP, FORMAT=A30, TITLE=Caption, PROPERTY=CAPTION, REFERENCE=GL_ACCOUNT, $ FIELDNAME=SYS_ACCOUNT, ALIAS=ALINE, FORMAT=A6, TITLE='System,Account,Line', MISSING=ON, $
El origen de datos CENTSYSF contiene datos financieros a nivel de detalle. Se trata de datos financieros no consolidados de una corporación ficticia, CenturyCorp. Ha sido diseñado para estar separado de la base de datos CENTGL como si viniera de un sistema de contabilidad externo. Utiliza un sistema de línea de cuenta diferente (SYS_ACCOUNT) que se puede unir al campo SYS_ACCOUNT de CENTGL. Se emplean signos naturales para los datos (los gastos son negativos y los ingresos, negativos).
FILE=CENTSYSF ,SUFFIX=FOC SEGNAME=RAWDATA ,SEGTYPE=S2 FIELDNAME=SYS_ACCOUNT , ,A6 , FIELDTYPE=I, TITLE='System,Account,Line', $ FIELDNAME=PERIOD , ,YYM , FIELDTYPE=I, $ FIELDNAME=NAT_AMOUNT , ,D10.0 , TITLE='Month,Actual', $ FIELDNAME=NAT_BUDGET , ,D10.0 , TITLE='Month,Budget', $ FIELDNAME=NAT_YTDAMT , ,D12.0 , TITLE='YTD,Actual', $
Cómo: |
Los comandos GET CHILDREN y WITH CHILDREN recuperan y muestran datos dinámicamente en el informe FML. GET CHILDREN muestra solamente el valor secundario, no el principal mencionado en el comando. WITH CHILDREN muestra primero el valor principal y luego el secundario.
TABLE FILE filename{PRINT|SUM} ... FOR hierarchyfld parentvalue {GET|WITH} CHILD[REN] [n|ALL] [AS CAPTION|'text'] [LABEL label] . . . END
donde:
Es el nombre del archivo que se debe utilizar en la solicitud FML. Si no se puede cargar automáticamente la jerarquía de esta solicitud, debió cargarse previamente mediante la emisión del comando LOAD CHART.
Es el nombre del campo de jerarquía. Si la solicitud menciona una estructura unida, el nombre debe ser el nombre de campo del archivo host. No se admiten alias.
Es el valor principal para el que debe ser recuperado el valor secundario.
Muestra la jerarquía empezando por el primer secundario del parentvalue especificado. No incluye al principal en la visualización. (Esto corresponde a la sintaxis FML CHILD1 OVER CHILD2 OVER...)
Muestra la jerarquía empezando por el parentvalue especificado. Incluye al principal en la visualización. (Esto corresponde a la sintaxis FML parentvalue OVER CHILD1 OVER CHILD2 OVER ...).
Es un número entero positivo de 1 a 99 que especifica el número de niveles de la jerarquía que hay que mostrar. Si se especifica un número superior a 99, aparece un mensaje de advertencia y n se convierte en 99. El valor predeterminado es 1. Por lo tanto, si se omite n, sólo se muestran los secundarios directos. GET o WITH CHILDREN 2 muestra los secundarios y los subsecundarios directos. GET o WITH CHILDREN 99 muestra hasta 99 niveles de secundarios. ALL es sinónimo de 99. Cada ocurrencia de un secundario se imprime sobre la siguiente. Se sangran en dos espacios los niveles sucesivos del campo de jerarquía del nivel anterior.
Indica que los valores de títulos que hay que mostrar se deben tomar del campo definido como CAPTION en el archivo máster.
Fíjese que las filas marcadas admiten la frase AS CAPTION, incluyendo aquellas que no utilizan la sintaxis GET/WITH CHILDREN o ADD. Sin embargo, se debe definir la jerarquía (especificando el atributo PARENT_OF) para cargar y mostrar los valores de títulos. Si no se define la jerarquía, se ignora la frase AS CAPTION.
Es una cadena de texto utilizada como fila de título para los valores de campo de jerarquía. El campo CAPTION definido en el archivo máster no se utiliza como título en la salida de informe.
Es una etiqueta de fila implícita. Cada fila generada se etiqueta con el texto especificado de etiqueta.
Nota: La jerarquía aparece clasificada por el campo principal y, dentro de éste, clasificada según el campo de jerarquía.
Para más información sobre las funciones FMLFOR, FMLLIST, FMLCAP y FMLINFO que devuelven valores de etiquetas y subtítulos utilizados en solicitudes FML, consulte . Cómo usar las funciones.
La siguiente solicitud muestra dos niveles de números de cuenta, empezando por la cuenta 3000:
SET BLANKINDENT=ON
TABLE FILE CENTGL
PRINT GL_ACCOUNT_PARENT
FOR GL_ACCOUNT
3000 WITH CHILDREN 2
END
La salida aparece en la imagen siguiente.
Parent ------ 3000 1000 3100 3000 3110 3100 3120 3100 3130 3100 3140 3100 3200 3000 3300 3200 3400 3200 3500 3200 3600 3200 3700 3200 3800 3200 3900 3200
Nota: Si la solicitud especifica GET CHILDREN en vez de WITH CHILDREN, la línea del valor principal (3000) no aparece en la salida de informe.
La siguiente solicitud muestra dos niveles de la jerarquía del plan de cuentas, empezando por la cuenta 1000 (parte superior de la jerarquía), con los valores del campo de título en lugar de los números de cuentas.
SET BLANKINDENT=ON TABLE FILE CENTGL PRINT GL_ACCOUNT_PARENT FOR GL_ACCOUNT 1000 WITH CHILDREN 2 AS CAPTION END
La salida aparece en la imagen siguiente.
Parent ------ Profit Before Tax Gross Margin 1000 Sales Revenue 2000 Cost Of Goods Sold 2000 Total Operating Expenses 1000 Selling Expenses 3000 General + Admin Expenses 3000 Total R+D Costs 1000 Salaries 5000 Misc. Equipment 5000
Nota: Si la solicitud especifica GET CHILDREN en vez de WITH CHILDREN, la línea del valor principal (1000, resultado antes de impuestos) no aparece en la salida de informe.
Cómo: |
El comando ADD consolida múltiples niveles de la jerarquía en una línea de la salida de informe FML. Puede utilizar ADD por sí solo o junto a GET CHILDREN o WITH CHILDREN. Tome en consideración que ADD ha sido diseñado para funcionar con solicitudes que utilizan el comando SUM. También ha sido diseñado para usarlo con datos detallados, no con datos consolidados.
Cuando se utiliza solo, ADD agrega el principal y el secundario en una línea de la salida de informe, resumiendo los valores de datos numéricos incluidos en la línea. Esto corresponde con la sintaxis FML parentvalue o CHILD1 OR CHILD2 OR ...
Cuando se utiliza junto con GET CHILDREN, ADD muestra una línea para cada secundario del valor principal especificado. Cada línea es una suma de ese secundario y todos sus respectivos secundarios. Puede especificar el número de niveles de secundarios que desee mostrar (esto determina el número de líneas generadas en la salida de informe) y la profundidad de resumen debajo de cada secundario. De forma predeterminada, sólo los secundarios directos tienen una línea en la salida de informe y el resumen de cada secundario incluye todos sus respectivos secundarios.
Cuando se utiliza junto con WITH CHILDREN, ADD muestra primero una línea en la salida de informe que consta del resumen del valor principal y todos sus secundarios. Luego muestra líneas adicionales idénticas a las que se muestran para GET CHILDREN ADD.
Para utilizar un registro de datos en más de una línea de un informe FML (por ejemplo, para mostrar tanto detalle como líneas del resumen o para consolidar los datos detallados en múltiples niveles), se necesita el siguiente ajuste:
SET FORMULTIPLE=ON
TABLE FILE filenameSUM ... FOR hierarchyfld parentvalue ADD [n|ALL] [AS CAPTION|'text'] [LABEL label] . . . END
donde:
Es el nombre del archivo que se debe utilizar en la solicitud FML. Si no se puede cargar automáticamente la jerarquía de esta solicitud, debió cargarse previamente mediante la emisión del comando LOAD CHART.
Es el nombre del campo de jerarquía. Si la solicitud menciona una estructura unida, el nombre debe ser el nombre de campo del archivo host. No se admiten alias.
Es el valor principal que determina el punto inicial en la jerarquía para agregación.
Muestra al principal y a n niveles de sus secundarios en una fila y suma los valores de datos numéricos que aparecen en la fila. Esto corresponde a la sintaxis parentvalue de FML, o CHILD 1 OR CHILD2 OR CHILD3, etc. cuando sea necesario.
Para mostrar la suma de los secundarios solamente, debe mostrar la fila principal y la fila de resumen y luego utilizar una RECAP para sustraer la fila principal de la suma. Por ejemplo:
FOR ... parentvalue OVER parentvalue ADD 1 OVER RECAP CHILDSUM = R2-R1;
Es un número entero positivo de 1 a 99 que especifica el número de niveles de la jerarquía que hay que agregar. ALL es el valor predeterminado. Por lo tanto, si se omite n, todos los secundarios se incluyen en la suma. Si n es 1, sólo se incluyen los secundarios directos. Si n es 2, se incluyen los secundarios o subsecundarios directos. ADD 99 incluye hasta 99 niveles de secundarios. ALL es sinónimo de 99.
Indica que se muestra el título del valor principal para toda la fila.
Tenga en cuenta que la frase AS CAPTION se admite para filas marcadas, incluyendo aquellas que no utilizan la sintaxis GET CHILDREN o ADD. Sin embargo, se debe definir la jerarquía (especificando el atributo PARENT_OF) para cargar y mostrar los valores de títulos. Si no se define la jerarquía, se ignora la frase AS CAPTION.
Es una cadena de texto que se utiliza como título de fila para la fila agregada. El campo CAPTION definido en el archivo máster no se utiliza como título en la salida de informe.
Es una etiqueta de fila implícita. Cada fila generada se etiqueta con el texto especificado de etiqueta.
El origen de datos CENTSYSF contiene datos financieros a nivel de detalle. Para utilizar la jerarquía de cuentas en el origen de datos CENTGL con sus datos financieros, se combinan los dos orígenes de datos. Los datos contenidos en CENTSYSF se almacenan con signos naturales; es decir, en términos financieros, que los ingresos y las deudas se almacenan como números negativos. La parte de la jerarquía utilizada en esta solicitud contiene sólo datos positivos.
Tenga en cuenta que no se necesita combinar para que sea única, porque la jerarquía se define en el segmento host.
Primero, el comando WITH CHILDREN muestra las líneas de la jerarquía empezando por la cuenta Gastos de ventas. Tenga en cuenta que solamente las cuentas sin secundarios se alimentan en este origen de datos detallado. El comando ADD crea entonces una línea que es la suma de la cuenta 3100 y todos sus secundarios.
SET BLANKINDENT=ON SET FORMULTIPLE=ON JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF TABLE FILE CENTGL SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0 FOR GL_ACCOUNT 3100 WITH CHILDREN ALL AS CAPTION OVER BAR OVER 3100 ADD AS CAPTION IF PERIOD EQ '2002/03' END
La salida aparece en la imagen siguiente.
TABLE FILE filename SUM ... FOR hierarchyfld parentvalue {GET|WITH} CHILD[REN] [n|ALL] ADD [m|ALL] [AS CAPTION|'text'] [LABEL label] . . . END
donde:
Es el nombre del archivo empleado en la solicitud FML. Si la jerarquía de esta solicitud no se carga automáticamente, indica que se cargó anteriormente mediante el comando LOAD CHART.
Es el nombre del campo de jerarquía. Si la solicitud menciona una estructura unida, el nombre debe ser el nombre de campo del archivo host. No se admiten alias.
Es el valor principal que determina el punto inicial en la jerarquía para agregación.
GET especifica que la primera línea generada en el informe, sea la línea consolidada para el primer elemento secundario del valor principal. GET especifica que la primera línea generada en el informe sea la línea consolidada para el valor principal, seguida por las líneas consolidadas de cada uno de sus secundarios, hasta el nivel especificado por n.
Es un número entero positivo de 1 a 99 que especifica el número de niveles de elementos secundarios que se va a mostrar. La línea de salida de cada secundario contiene la suma de dicho secundario y sus secundarios hasta la profundidad especificada para la opción ADD. El valor predeterminado es 1. Por lo tanto, si se omite n, cada secundario directo tiene una línea en el informe. Si n es 2, los secundarios y los subsecundarios directos tiene cada uno una línea en la salida de informe. ALL es sinónimo de 99.
Suma la jerarquía hasta la profundidad especificada por m para cada línea generada por los comandos GET o WITH CHILDREN.
Es un número entero positivo de 1 a 99 que especifica el número de niveles de secundarios que hay que consolidar en cada línea de la salida de informe. Si se especifica un número mayor de 99, aparece un mensaje de advertencia y m se convierte en 99. ALL es el valor predeterminado. Por lo tanto, si se omite m, la línea consolidada suma todos los secundarios. Si m es 2, sólo se consolidan los secundarios y subsecundarios de cada línea en la salida de informe. ADD 99 agrega secundarios en 9 niveles. ALL es sinónimo de 99.
Indica que se muestra el título del valor principal para toda la fila.
Tenga en cuenta que la frase AS CAPTION se admite para filas marcadas, incluyendo aquellas que no utilizan la sintaxis GET CHILDREN o ADD. Sin embargo, se debe definir la jerarquía (especificando el atributo PARENT_OF) para cargar y mostrar los valores de títulos. Si no se define la jerarquía, se ignora la frase AS CAPTION.
Es una cadena de texto que se utiliza como título de fila para la fila agregada. El campo CAPTION definido en el archivo máster no se utiliza como título en la salida de informe.
Es una etiqueta de fila implícita. Cada fila generada se etiqueta con el texto especificado de etiqueta.
En la siguiente solicitud, el primer comando WITH CHILD muestra los datos detallados de la jerarquía, empezando por la cuenta 3100. El siguiente comando WITH CHILD crea una línea consolidada para la cuenta principal (3100) y cada secundario directo.
SET BLANKINDENT=ONSET FORMULTIPLE=ON JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF TABLE FILE CENTGL SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0 FOR GL_ACCOUNT 3100 WITH CHILDREN ALL AS CAPTION OVER " " OVER BAR AS = OVER " " OVER 3100 WITH CHILDREN ADD AS CAPTION IF PERIOD EQ '2002/03' END
Tenga en cuenta que no se necesita combinar para que sea única, porque la jerarquía se define en el segmento host.
En la salida siguiente, la parte superior muestra los datos detallados. La parte inferior muestra los datos consolidados. En la parte consolidada del informe:
El uso de GET CHILDREN en vez de WITH CHILDREN elimina la línea superior de cada parte de la salida. Las líneas restantes son las mismas.
La siguiente solicitud muestra una línea consolidada para la cuenta 2000 y cada uno de sus secundarios y subsecundarios directos.
SET FORMULTIPLE=ON
JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF
TABLE FILE CENTGL
SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0
FOR GL_ACCOUNT
2000 WITH CHILDREN 2 ADD AS CAPTION
IF PERIOD EQ '2002/03'
END
La salida aparece en la imagen siguiente.
Cómo: Referencia: |
En la mayoría de los casos, las jerarquías se cargan automáticamente como resultado de la sintaxis de la solicitud. Sin embargo, si necesita utilizar una jerarquía definida en un archivo máster contra un origen de datos que no esté combinado con el archivo de jerarquía (pero que contenga el mismo campo de jerarquía), puede cargar manualmente los datos de jerarquía con el comando LOAD CHART.
El número de diagramas que se puede cargar está limitado por la memoria disponible. Los diagramas quedan descargados automáticamente cuando termina la sesión.
Este diagrama se carga ejecutando una solicitud TABLE que produce una lista de valores principales y sus elementos secundarios.
TABLE FILE chartfile BY parentfield BY hierarchyfield [SUM captionfield] END
El diagrama que resulta de esto contiene la siguiente información. Podría también contener los títulos asociados, dependiendo de si se utiliza la frase AS CAPTION en la solicitud.
parentfield hierarchyfield ----------- -------------- parentvalue1 child1 parentvalue1 child2 parentvalue2 child3 . . .
Si necesita utilizar una jerarquía definida en un archivo máster basado en un origen de datos que no ha sido combinado con el archivo de la jerarquía, pero que contiene el mismo campo de jerarquía, puede cargar manualmente los datos de la jerarquía.
La memoria disponible dicta el número de diagramas que se puede cargar. Los diagramas quedan descargados automáticamente cuando finaliza WebFOCUS.
LOAD CHART chartfile[.sega].hierarchyfld [FOR requestfile[[.segb].fieldb]]
donde:
Es el nombre del archivo máster que contiene la información de jerarquía.
Es el nombre del segmento que contiene el campo de jerarquía. El nombre del segmento sólo es necesario cuando un campo situado en otro campo de la estructura tiene el mismo nombre de campo que el campo de jerarquía.
Es el campo de jerarquía. Se requiere porque un archivo máster puede definir múltiples jerarquías.
Carga una jerarquía definida en un archivo máster que no se utiliza en la solicitud de informe FML. Por ejemplo, si el archivo máster B contiene la información de jerarquía pero se utiliza el archivo máster A en la solicitud (sin una join entre los archivos máster A y B), emita el siguiente comando LOAD CHART antes de la solicitud FML:
LOAD CHART B.FLDB FOR A.FLDA TABLE FILE A ...
es el nombre del archivo máster utilizado en la solicitud FML.
Es el nombre del segmento que contiene los valores de campo de jerarquía en el archivo máster utilizados en la solicitud FML. No es obligatorio si tiene el mismo nombre que sega.
es el campo en el archivo máster especificado en la solicitud FML que contiene los valores del campo de jerarquía. No es obligatorio si tiene el mismo nombre que el campo de la jerarquía.
Nota:
SET FORMULTIPLE=ON
WebFOCUS |