Référence aux colonnes dans les calculs

Dans cette section :

Un rapport FML peut faire référence à des colonnes et des lignes explicites. Vous pouvez faire référence aux colonnes en utilisant :


Haut de page

Exemple : Application de déclarations de colonne dans les expressions RECAP

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.

report

Par exemple, vous pouvez utiliser la valeur de Pour plus d'informations, consultezRéférence aux cellules dans les calculs.


Haut de page

x
Référence aux numéros de colonne 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.



Exemple : Référence aux numéros de colonne dans une expression RECAP
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.

report

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.


Haut de page

x
Référence aux colonnes contiguës dans les calculs

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.



Exemple : Récapitulation sur les colonnes contiguës

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.

report


Haut de page

x
Référence aux adresses de colonne dans les calculs

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.



x
Syntaxe : Utiliser l'adressage de colonne dans une expression RECAP

La côté gauche de l'expression prend la forme suivante :

value(s,e,i)[/format]=

où :

value

Est le nom que vous attribuez au résultat du calcul RECAP.

s

Est la colonne de début.

e

Est la colonne de terminaison (cela peut afficher * pour indiquer toutes les colonnes).

i

Est le facteur d'incrément.

format

Est le format USAGE de la valeur calculée. La valeur par défaut est le format de la colonne originale.



Exemple : Application d'adressage de colonne dans une expression RECAP

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).


Haut de page

x
Référence aux adresses de colonne relatives dans les calculs

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.


Haut de page

x
Application d'adressage de colonne relative dans une expression RECAP

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.

report


Haut de page

x
Contrôle de la création de numéros de référence de colonne

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.



x
Syntaxe : Contrôler la création de numéros de référence de colonne
SET CNOTATION={ALL|PRINTONLY|EXPLICIT}

où :

ALL

Attribue des numéros de référence de colonne à toutes les colonnes dans la matrice interne. ALL est la valeur par défaut.

PRINTONLY

Attribue des numéros de référence de colonne uniquement aux colonnes qui s'affichent dans la sortie de rapport.

EXPLICIT

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.


Haut de page

x
Référence aux valeurs de colonne dans les calculs

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.



Exemple : Référence à une colonne en fonction de sa valeur dans une expression 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.

report


WebFOCUS