Cómo describir un filtro: FILTER

Cómo:

Referencia:

Puede utilizar campos virtuales booleanos (campos DEFINE que evalúan TRUE o FALSE) como criterios de selección de registros: Si el próposito principal del campo virtual es ser utilizado para seleccionar registros, puede clarificar dich propósito y organizar los campos virtuales del archivo máster, almacenando la expresión con una declaración FILTER, en vez de un DEFINE. Los filtros presentan las siguientes características:


Principio de página

x
Sintaxis: Cómo Declarar un filtro en un archivo máster
FILTER  filtername = expression;

donde:

filtername

Es el nombre asignado al filtro. El filtro queda asignado internamente al formato I1, y no puede modificarse.

expression

Es una expresión lógica que evalúa TRUE (asigna el valor 1 al campo del filtro) o FALSE (asigna el valor 0 al campo del filtro). Con cualquier otro tipo de expresión, el campo queda convertido en un campo virtual numérico, estándar, dentro del archivo máster. Las variables (ampersand) de Dialogue Manager pueden ser utilizadas en la expresión del filtro, del mismo modo en que se usan los DEFINEs de archivo máster estándar.


Principio de página

x
Sintaxis: Cómo Usar un filtro de archivos máster en una solicitud
TABLE FILE filename   .
   .
   .
{WHERE|IF} expression_using_filters

donde:

expression_using_filters

Es una expresión lógica que hace referencia a un filtro. En una frase WHERE, la expresión lógica puede hacer referencia a uno o varios filtros o campos virtuales.


Principio de página

x
Referencia: Notas de uso de filtros en un archivo máster


Ejemplo: Cómo definir y usar un filtro de archivos máster

Oberve la siguiente declaración de filtro, añadida al archivo máster MOVIES:

FILTER G_RATING = RATING EQ 'G' OR 'PG'; $

La siguiente solicitud aplica el filtro G_RATING:

TABLE FILE MOVIES
HEADING CENTER
"Rating G and PG"
PRINT TITLE CATEGORY RATING
WHERE G_RATING
ON TABLE SET PAGE NOPAGE
ON TABLE SET GRID OFFON TABLE SET STYLE *
type=report, style=bold, color=black, backcolor=yellow, $
type=data, backcolor=aqua, $                              
ENDSTYLE      
END

La salida es:


WebFOCUS