Créer une valeur calculée

Dans cette section :

Comment :

Référence :

Une valeur calculée est un champ temporaire évalué une fois que toutes les données remplissant les critères de sélection sont récupérées, triées et agrégées. Les valeurs calculées ne sont disponibles que pour la requête de rapport indiquée.

Vous spécifiez la commande COMPUTE dans le corps de la requête de rapport. La commande suit la commande d'affichage et peut, facultativement, être précédee par AND. Vous pouvez calculer plus d'un champ à l'aide d'une seule commande COMPUTE.


Haut de page

x
Référence : Notes d'utilisation pour les valeurs de champs calculées

Les conditions suivantes s'appliquent à l'utilisation de valeurs calculées :


Haut de page

x
Syntaxe : Créer une valeur calculée
COMPUTE fld [/format]= expression;[AS 'title'] [NOPRINT] [IN [+n]]

où :

fld
Est le nom de la valeur calculée.

Le nom peut être tout nom conforme aux règles de nommage de champs WebFOCUS.

Il est important de ne pas utiliser les noms de champ de type Cn, En et Xn (où n est toute séquence composée d'un ou de deux chiffres), car ils sont destinés à d'autres emplois.

format
Est le format du champ. La valeur par défaut est D12.2. Pour plus d'informations sur les formats, consultez Description de données en langage WebFOCUS .
expression
Peut être une expression arithmétique et/ou logique ou une fonction (voir Utilisation d'expressions). Tout champ utilisé dans l'expression doit faire partie de la requête. Toute expression doit se terminer par un point virgule (;).
NOPRINT
Empêche l'impression du champ. Pour plus de détails, consultez Mise en page de la page de rapport.
AS ' title'
Change le nom de la valeur calculée. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes.
IN [+n]
Spécifie l'emplacement de la colonne. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes. IN ne marche dans un rapport HTML que lorsque le paramètre STYLEMODE SET est mis à FIXED ou OFF.

Haut de page

x
Syntaxe : Créer une valeur calculée sans calcul
COMPUTE fld [/format]= ;

où :

fld
Est le nom de la valeur calculée.

Le nom peut être tout nom conforme aux règles de nommage de champs WebFOCUS.

Il est important de ne pas utiliser les noms de champ de type Cn, En et Xn (où n est toute séquence composée d'un ou de deux chiffres), car ils sont destinés à d'autres emplois.

format
Est le format du champ. La valeur par défaut est D12.2. Pour plus d'informations sur les formats, consultez Description de données en langage WebFOCUS .


Exemple : Calcul d'une valeur de champ

Dans l'exemple suivant, la commande COMPUTE crée un champ temporaire, REVENUE, en fonction du produit de UNIT_SOLD et RETAIL_PRICE, et affiche ces informations pour New York City. Le format D12.2M indique le format de champ pour REVENUE et la commande AS change les en-têtes de colonne par défaut pour UNIT_SOLD et RETAIL_PRICE. REVENUE n'est disponible que pour cette requête de rapport.

TABLE FILE SALES
HEADING CENTER
"NEW YORK PROFIT REPORT"
" "
SUM UNIT_SOLD AS 'UNITS,SOLD' RETAIL_PRICE AS 'RETAIL,PRICE'
COMPUTE REVENUE/D12.2M = UNIT_SOLD * RETAIL_PRICE;
BY PROD_CODE AS 'PROD,CODE'
WHERE CITY EQ 'NEW YORK'
END

La sortie est :

       NEW YORK PROFIT REPORT       
                                    
PROD  UNITS  RETAIL                 
CODE  SOLD   PRICE           REVENUE
----  -----  ------          -------
B10      30    $.85           $25.50
B17      20   $1.89           $37.80
B20      15   $1.99           $29.85
C13      15   $1.99           $29.85
C14      18   $2.05           $36.90
C17      12   $2.09           $25.08
D12      20   $2.09           $41.80
E1       30    $.89           $26.70
E2       33    $.99           $32.67
E3       35   $1.09           $38.15

Haut de page

x
Utilisation du référencement de colonnes avec des valeurs calculées

Il est parfois plus pratique de référencer un champ dans une expression COMPUTE en indiquant sa position de colonne de rapport plutôt que son nom. Cette option se révèle particulièrement utile lorsqu'un même champ est indiqué pour plusieurs colonnes de rappport.

La possibilité de référencement de colonnes devient important, voire primordial, lorsque le même nom de champ est utilisé de nombreuses façons différentes. L'image suivante montre que les colonnes générées par les commandes d'affichage (qu'elles soient affichées ou non) peuvent être désignées selon le système : C1 pour la première colonne, C2 pour la deuxième colonne, et ainsi de suite. Les colonnes de champ BY ne sont pas comptées.

Pour plus d'informations sur les numéros de référence des colonnes, consultez Attribution de numéros de référence de colonne.



Exemple : Utilisation de référencement de colonnes

L'exemple suivant illustre le référencement de colonnes dans une commande COMPUTE :

TABLE FILE CAR
SUM AVE.DEALER_COST
SUM AVE.DEALER_COST AND COMPUTE RATIO=C1/C2;
BY COUNTRY
END

Les colonnes générées par les commandes d'affichage peuvent être désignées selon le système : C1 pour la première colonne, C2 pour la deuxième colonne, et ainsi de suite. Les colonnes de champ BY ne sont pas comptées.

La sortie est :

AVE                      AVE                        
DEALER_COST  COUNTRY     DEALER_COST           RATIO
-----------  -------     -----------           -----
      7,989  ENGLAND           9,463             .84
             FRANCE            4,631            1.73
             ITALY            10,309             .77
             JAPAN             2,756            2.90
             W GERMANY         7,795            1.02

Haut de page

x
Utilisation d'ACROSS avec des valeurs calculées

Si la commande COMPUTE est lancée immédiatement après une phrase ACROSS, seul un type récapitulatif du calcul s'effectue pour toutes les colonnes. Comme COMPUTE fait partie d'une commande d'affichage, une nouvelle colonne est calculée pour chaque ensemble de valeurs.



Exemple : Utilisation de COMPUTE dans une commande d'affichage
TABLE FILE SALES
SUM UNIT_SOLD 
COMPUTE NEWVAL = UNIT_SOLD * RETAIL_PRICE;
ACROSS CITY
END

La première page de sortie est :

CITY                                                             
NEW YORK            NEWARK              STAMFORD            UNIONDALE
UNIT_SOLD    NEWVAL UNIT_SOLD    NEWVAL UNIT_SOLD    NEWVAL UNIT_SOLD    NEWVAL
--------------------------------------------------------------------------------
      162  1,764.18        42    104.16       376  4,805.28        65    297.70 


Exemple : Utilisation d'ACROSS avec des valeurs calculées

Dans la commande COMPUTE suivante, C1, C2, C3, C4, C5 et C6 sont des référencements de colonnes et COMPUTE suit la phrase ACROSS. La commande COMPUTE s'effectue une fois pour le rapport, et les résultats s'affichent à droite de tous les groupes de tri.

TABLE FILE SALES
SUM UNIT_SOLD AND RETURNS
WHERE DATE GE '010' AND DATE LE '1031'
ACROSS DATE
COMPUTE
TOT_UNITS/D5=C1 + C3 + C5;
TOT_RETURNS = C2 + C4 + C6;
END

La sortie est :

DATE                                                                         
10/17       10/18     10/19       TOT_UNITS   TOT_RETURNS              TOT_UNITS   TOT_RETURNS
UNIT_SOLD   RETURNS   UNIT_SOLD   RETURNS     UNIT_SOLD     RETURNS
----------------------------------------------------------------------------------------------
162         15        78          2           29            1          269         18.00

Haut de page

x
Tri de valeurs calculées

Il est possible de trier un rapport sur un champ virtuel ou sur une valeur calculée. Pour trier sur une valeur calculée, il faut utiliser la phrase BY TOTAL dans la requête. Pour plus de détails, consultez Trier et agréger des colonnes de rapport.


Haut de page

x
Présélection de valeurs calculées

Vous pouvez effectuer une présélection sur les valeurs générées par des expressions COMPUTE à l'aide du test WHERE TOTAL, comme le décrit Sélection d'enregistrements pour votre rapport.


WebFOCUS