Un rapport FML peut faire référence à des colonnes et des lignes explicites. Vous pouvez faire référence aux colonnes en utilisant :
La requête suivante génère une matrice FML avec quatre lignes et trois colonnes de données.
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
Les colonnes du rapport et les cellules de la matrice peuvent être les deux référencées dans un autre rapport FML.
La sortie est montrée ci-dessous.
Par exemple, vous pouvez utiliser la valeur de Pour plus d'informations, consultezRéférence aux cellules dans les calculs.
Vous pouvez effectuer un calcul pour une seule colonne ou pour un ensemble de colonnes particulier. Pour identifier les colonnes, mettez le numéro de colonne entre paranthèses après le nom du label.
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
Dans la deuxième expression RECAP, notez que :
La valeur RECAP n'est calculée que pour la colonne spécifiée.
La sortie est montrée ci-dessous.
Une fois la récupération de données terminée, une seule colonne est calculée en même temps, et les colonnes multiples sont calculées une par une.
Si un jeu de colonnes contigues est nécessaire dans une commande RECAP, vous pouvez séparer les premiers et derniers numéros de colonne avec des virgules. Par exemple, DIFFERENCE (2,5) indique que vous souhaitez calculer les résultats pour les colonnes 2 à 5.
Dans cet exemple, le calcul RECAP s'effectue seulement pour les colonnes 2 et 3, comme le spécifie la requête. Aucun calcul ne s'effectue pour la colonne 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 sortie est montrée ci-dessous.
Comment : |
Si vous avez besoin d'un calcul pour toutes les deux ou trois colonnes et non pas toutes les colonnes, vous pouvez fournir un facteur ou une adresse de colonne pour ce faire. L'adressage de colonne est utile lorsque plusieurs champs de données s'affichent dans chaque valeur d'un tri de colonne.
La côté gauche de l'expression prend la forme suivante :
value(s,e,i)[/format]=
où :
Est le nom que vous attribuez au résultat du calcul RECAP.
Est la colonne de début.
Est la colonne de terminaison (cela peut afficher * pour indiquer toutes les colonnes).
Est le facteur d'incrément.
Est le format USAGE de la valeur calculée. La valeur par défaut est le format de la colonne originale.
La déclaration suivante comprend deux colonnes pour chaque mois :
SUM ACTUAL AND FORECAST ACROSS MONTH
Si vous souhaitez effectuer un calcul pour les données ACTUAL uniquement, contrôlez l'emplacement des résultats avec une expression RECAP sous la forme :
RECAP calcname(1,*,2)=expression;
L'astérisque indique qu'il faut continuer à appliquer l'expression RECAP à toutes les colonnes numérotées impaire (en commançant par la colonne 1, avec un incrément de 2, pour toutes les colonnes).
Un calcul peut utiliser une colonne particulière en tant que base, et faire référence à toutes les autres colonnes en fonction du déplacement à partir de cette base. La colonne à la gauche de la colonne de base dispose d'un décalage de -1 relatif à la colonne de base. La colonne à la droite de la colonne de base dispose d'un décalage de +1. Par exemple,
COMP=FIX(*)-FIX(*-1);
peut faire référence au changement des actifs immobilisés d'une période à une autre. La référence à COMP=FIX(*) est équivalent à COMP=FIX.
En faisant référence à une colonne précédente, la colonne doit avoir déjà été récuppérée, sinon sa valeur est zéro.
Cet exemple calcule le changement d'argent liquide (CHGCASH) pour les colonnes 1 et 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 sortie est montrée ci-dessous.
Comment : |
La notation de colonne attribue un numéro de colonne séquentiel à chaque colonne de la matrice interne créée pour une requête de rapport. Si vous souhaitez contrôler la création des numéros de référence de colonne pour les colonnes utilisées dans votre rapport, utilisez la commande de notation de colonne CNOTATION.
Comme les numéros de colonne font référence aux colonnes dans la matrice interne, ils sont attribués après que la récupération et l'agrégation de données soient terminées. Les colonnes créées et affichées dans un rapport sont stockées dans la matrice interne, et celles qui ne sont pas affichées dans un rapport peuvent aussi être générées et stockées dans la matrice interne. Les colonnes stockées dans la matrice interne comprennent les valeurs calculées, les valeurs de champ recalculées, les champs BY, les champs avec l'option NOPRINT et certains calculs RECAP, tels que FORECAST et REGRESS. Un numéro de colonne par défaut est attribué à toutes les deux colonnes dans la matrice interne, vous obligeant de tenir compte de toutes les colonnes générées en interne si vous souhaitez faire référence à la valeur de colonne appropriée dans votre requête.
Vous pouvez changer l'attribution par défaut des numéros de référence de colonne à l'aide de la commande SET CNOTATION=PRINTONLY, qui attribue des numéros de colonne uniquement aux colonnes qui s'affichent dans la sortie de rapport. Vous pouvez employer la notation de colonne dans les commandes COMPUTE et RECAP afin de faire référence à ces colonnes dans votre requête.
SET CNOTATION={ALL|PRINTONLY|EXPLICIT}
où :
Attribue des numéros de référence de colonne à toutes les colonnes dans la matrice interne. ALL est la valeur par défaut.
Attribue des numéros de référence de colonne uniquement aux colonnes qui s'affichent dans la sortie de rapport.
attribue des numéros de référence de colonne à tous les champs référencés dans la requête, qu'ils s'affichent ou non.
Remarque : CNOTATION n'est pas supporté dans une phrase ON TABLE.
Lorsque un rapport est trié avec la phrase ACROSS, toutes les valeurs récupérées s'alignent sous la colonne appropriée. Chaque colonne comprend un titre consistant d'une valeur du champ ACROSS. L'on peut faire référence à la colonne de données complète à partir de cette valeur dans un calcul RECAP.
La requête suivante utilise un facteur qui dépend de la valeur du champ ACROSS (YEAR) pour calculer les frais d'inventaire pour chaque année. Elle calcule par la suite le profit en ajoutant les biens et en soustrayant les frais d'inventaire pour chaque année.
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 sortie est montrée ci-dessous.
WebFOCUS |