Cómo crear un valor calculado

En esta sección:

Cómo:

Referencia:

Un valor calculado es un campo temporal que se evalúa después de que todos los datos que satisfacen los criterios de selección son recuperados, clasificados, y resumidos. Los valores calculados están disponibles sólo para la solicitud de informe especificada.

El comando COMPUTE se especifica en el cuerpo de la solicitud de informe, después del comando de visualización e introducido (opcional) por AND. Puede calcular más de un campo con un solo comando COMPUTE.


Principio de página

x
Referencia: Notas de uso de valores de campo calculados

Los procesos siguientes se aplican al usar valores calculados:


Principio de página

x
Sintaxis: Cómo Crear un valor calculado
COMPUTE fld [/format]= expression;[AS 'title'] [NOPRINT] [IN [+n]]

donde:

fld
Es el nombre del valor calculado,

Puede ser cualquier cosa, siempre que sea compatible con las reglas de nomenclatura de campos WebFOCUS.

No use nombres de campo del tipo Cn, En y Xn (donde n es cualquier secuencia de uno o dos dígitos), porque están reservados para otros usos.

format
Es el formato del campo El valor predefinido es D12.2. Para más información sobre formatos, consulte el manual Cómo describir datos con el lenguaje WebFOCUS. .
expression
Puede ser una expresión o función lógica o aritmética (vaya a Cómo utilizar expresiones). Cada campo usado en la expresión debe ser parte de la solicitud. Cada expresión debe terminar en punto y coma (;).
NOPRINT
Elimina la impresión del campo. Para más información, consulte Cómo diseñar la página de informe.
AS 'title'
Cambia el nombre del valor calculado. Para más información, consulte Cómo usar encabezados, pies, títulos y etiquetas.
IN [+n]
Especifica la ubicación de la columna. Para más información, consulte Cómo usar encabezados, pies, títulos y etiquetas. IN funciona solamente en un informe HTML cuando el parámetro STYLEMODE SET está en FIXED u OFF.

Principio de página

x
Sintaxis: Cómo Crear un valor calculado sin un cálculo
COMPUTE fld [/format]= ;

donde:

fld
Es el nombre del valor calculado,

Puede ser cualquier cosa, siempre que sea compatible con las reglas de nomenclatura de campos WebFOCUS.

No use nombres de campo del tipo Cn, En y Xn (donde n es cualquier secuencia de uno o dos dígitos), porque están reservados para otros usos.

format
Es el formato del campo El valor predefinido es D12.2. Para más información sobre formatos, consulte el manual Cómo describir datos con el lenguaje WebFOCUS. .


Ejemplo: Cómo calcular un valor de campo

En el siguiente ejemplo, el comando COMPUTE crea un campo temporal REVENUE basado en el producto de UNIT_SOLD y RETAIL_PRICE y muestra esta información para la ciudad de New York. El formato D12.2M indica el formato de campo para REVENUE y el comando AS cambia los encabezados de columna predeterminados a UNIT_SOLD y RETAIL_PRICE. REVENUE está disponible solamente para esta solicitud de informe.

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 salida es:

       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

Principio de página

x
Cómo hacer referencia a la posición de las columnas con valores calculados

En comandos COMPUTE, de vez en cuando resulta útil referirse a un campo por su posición de columna en el informe, en vez de por su nombre. Esta opción es especialmente útil cuando se especifica el mismo campo para diferentes columnas del informe.

La referencia a las columnas es esencial cuando se usa el mismo nombre de campo en una serie de formas. La siguiente imagen indica que puede hacer referencia a las columnas producidas por los comandos de visualización (aparezcan o no aparezcan) mediante C1, para la primera, C2 para la segunda, etc. No se cuentan las columnas de los campos BY.

Para más información sobre los números de referencia de columna, consulte Cómo asignar números de referencia de columna.



Ejemplo: Cómo hacer referencia a la posición de las columnas

El ejemplo siguiente muestra referencias a campos posicionales en un comando COMPUTE:

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

Las columnas producidas mediante comandos de visualización pueden denominarse C1, para la primera columna (AVE.DEALER_COST), C2, para la segunda, (AVE.DEALER_COST BY COUNTRY) y así sucesivamente. No se cuentan las columnas de los campos BY.

La salida es:

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

Principio de página

x
Cómo usar ACROSS con valores calculados

Si el comando COMPUTE se emite inmediatamente después de una frase ACROSS, se ejecuta un resumen del cálculo una sola vez para todas las columnas. COMPUTE se usa como parte de un comando de visualización, de manera que se calcula una nueva columna para cada conjunto de valores.



Ejemplo: Cómo usar COMPUTE como parte de un comando de visualización
TABLE FILE SALES
SUM UNIT_SOLD 
COMPUTE NEWVAL = UNIT_SOLD * RETAIL_PRICE;
ACROSS CITY
END

La primera página de salida es:

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 


Ejemplo: Cómo usar ACROSS con valores calculados

En el siguiente comando COMPUTE C1, C2, C3, C4, C5, y C6 son referencias a columnas posicionales y el comando COMPUTE sigue a la frase ACROSS. Se ejecuta COMPUTE una vez para el informe y los resultados se muestran a la derecha de todos los grupos de clasificación.

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 salida es:

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

Principio de página

x
Cómo clasificar valores calculados

Puede clasificar un informe mediante un campo virtual o un valor calculado. Para clasificar mediante un valor calculado debe usar la frase BY TOTAL en su solicitud. Para obtener información detallada, consulte Cómo clasificar y agregar columnas de informes.


Principio de página

x
Cómo filtrar valores calculados

Puede filtrar valores calculados producidos con comandos COMPUTE mediante la prueba WHERE TOTAL, tal como se describe en Cómo seleccionar registros para su informe.


WebFOCUS