En esta sección:
Cómo: Referencia: |
Identifique un campo mediante el atributo FIELDNAME, el primer atributo especificado en la declaración de un campo, en el archivo máster. Puede asignar cualquier nombre a un campo, sin importar el nombre que tenga en su origen de datos nativo. Del mismo modo, en orígenes de datos FOCUS, puede asignar cualquier nombre a un campo de un nuevo origen de datos.
Al generar un informe, el título de cada columna del informe tendrá como predefinido el nombre del campo mostrado en esa columna. Por tanto, asigne un nombre descriptivo a los campos para facilitar la comprensión del lector. Alternativamente, puede especificar un título de columna distinto en un informe concreto, utilizando la frase AS an la solicitud de informe, como se explica en el Cómo crear informes con el lenguaje WebFOCUS. manual , o un título predeterminado de columna, diferente, para todos los informes que usen el atributo TITLE en el archivo máster, como se explica en Títulos alternativos de columnas de informes: TITLE.
FIELD[NAME] = field_name
donde:
Es el nombre que está dando a este campo. Puede tener un máximo de 66 caracteres. Existen algunas restricciones que afectan a los nombres de más de 12 caracteres, como se describe más abajo. El nombre puede incluir cualquier combinación de letras, dígitos y caracteres de subrayado (_) y debe tener una letra, por lo menos. No se recomienda el uso de otros caracteres ya que pueden causar problemas en algunos entornos operativos o a la hora de resolver expresiones.
Es recomendable que no use los nombres de campos de tipo Cn, En y Xn (donde n es cualquier secuencia de uno o dos dígitos), ya que pueden ser utilizados para hacer referencia a columnas de informes, campos de archivos HOLD y otros objetos especiales.
Si tiene que usar caracteres especiales debido al título de columna de informe de un campo, plantéese usar el atributo TITLE en el archivo máster para especificar el título, como se describe en Títulos alternativos de columnas de informes: TITLE.
Tenga en cuenta estas reglas al usar FIELDNAME:
Cómo: Referencia: |
En los archivos máster, los nombres y alias de campos pueden tener un máximo de 66 caracteres. Sin embargo, antes de definir un nombre de más de 48 caracteres, tenga en cuenta como se va a hacer referencia al nombre en las solicitudes.
Las solicitues pueden cualificar todos los nombres y alias de campos citados con nombres de archivos o segmentos, lo que resulta útil cuando hay nombres de campos duplicados en segmentos de un archivo máster o en orígenes de datos unidos. Aunque los calificadores y caracteres de cualificación solo son válidos en solicitudes, no en archivos máster, el máximo de 66 caracteres incluye cualquier calificador o carácter de cualificación utilizados con el nombre del campo en solicitudes. Por tanto, si define un nombre de 66 caracteres en el archivo máster, no podrá usar los calificadores con el nombre en una solicitud.
El máximo de 66 caracteres incluye el nombre del campo o alias, más cada calificador de campo (nombre de archivo máster y nombre de segmento) y un carácter de cualificación (normalmente, un punto) por cada calificador. Puede emplear un truncamiento único de un nombre de 66 caracteres con un calificador.
Los nombres temporales también pueden tener hasta 66 caracteres. Los nombres de campos de texto y campos indexados tienen un tope de 12 caracteres en archivos máster FOCUS. Los campos de texto y campos indexados no tienen este límite de 12 caracteres en archivos máster XFOCUS. Sin embargo, los alias de campos de texto o indexados pueden tener hasta 66 caracteres. Los nombres de campos de hasta 66 caracteres aparecen como títulos de columnas en informes TABLE, cuando no hay un atributo TITLE o frase AS.
El valor predeterminado del comando SET FIELDNAME, SET FIELDNAME=NEW, activa los nombres de campos largos y cualificados. La sintaxis aparece descrita en el Cómo desarrollar aplicaciones de informes manual.
[filename.][segname.]fieldname
donde:
Es el nombre del archivo máster o de la etiqueta. Los nombres de etiquetas se usan con los comandos JOIN y COMBINE.
Es el nombre del segmento en que reside el campo.
Es el nombre del campo
El nombre completamente cualificado del campo EMP_ID, en el segmento EMPINFO del origen de datos EMPLOYEE, es:
EMPLOYEE.EMPINFO.EMP_ID
SET QUALCHAR = qualcharacter
El punto (.) es el carácter de cualificación predeterminado.Para más información sobre el comando SET QUALCHAR y los caracteres de cualificación (. : ! % | \ ), consulte el Cómo desarrollar aplicaciones de informes .
Las restricciones siguientes afectan a los nombres y alias de campos de más de 12 caracteres (nombres largos):
Estos muestran hasta 31 caracteres, como máximo, y un signo de intercalación (>), en el carácter 32, para indicar que el nombre del campo es más largo.
Se considera que los nombres de campos se hayan duplicados cuando se puede hacer referencia a dos o más campos con el mismo nombre o alias. La duplicación puede ocurrir:
No puede haber campos duplicados (con el mismo nombre o alias) en un mismo segmento. Nunca se accede al segundo caso; al emitir CHECK y CREATE FILE, se genera el mensaje siguiente:
(FOC1829) WARNING. FIELDNAME IS NOT UNIQUE WITHIN A SEGMENT: fieldname
Puede haber nombres de campos duplicados en distintos segmentos de un archivo máster. Para recuperar uno de estos campos, debe cualificar su nombre con el nombre del segmento, en una solicitud. Si el campo que aparece varias veces en un archivo máster no está cualificado en una solicitud, se recupera el primer valor hallado en el archivo máster.
Nota: Si un archivo máster incluye nombres de campos duplicados de campos reales o virtuales, se emplea la lógica siguiente al recuperar un campo:
Los informes pueden incluir nombres cualificados como títulos de columnas. El comando SET QUALTITLES, tratado en el Cómo desarrollar aplicaciones de informes manual , determina si los informes mostrarán títulos de columnas cualificados para los nombres de campos duplicados. Con SET QUALTITLES=ON, muestran títulos de columnas cualificados para los nombres de campos duplicados, incluso cuando la solicitud misma no especifica nombres cualificados. El valor predeterminado, OFF, desactiva los títulos de columnas cualificados.
Las reglas siguientes se usan para evaluar los nombres de campos cualificados:
TABLE FILE EMPLOYEE PRINT EMPLOYEE.EMPINFO.EMP_ID END
incluye EMP_ID como campo completamente cualificado. El nombre del archivo, EMPLOYEE, y el nombre del segmento, EMPINFO, son los calificadores del campo.
Los nombres de los calificadores también pueden estar duplicados. Por ejemplo:
FILENAME=CAR, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME=COUNTRY, COUNTRY, A10, $ SEGNAME=COMP, SEGTYPE=S1, PARENT=ORIGIN FIELDNAME=CAR, CARS, A16, $ . . . TABLE FILE CAR PRINT CAR.COMP.CAR END
Esta solicitud imprime el campo con el alias CARS. El nombre del archivo y el nombre del campo es CARS.
El nombre de un campo puede estar cualificado por un calificador individual: el nombre de su archivo o el del segmento. Por ejemplo:
FILENAME=CAR, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME=COUNTRY, COUNTRY, A10, $ SEGNAME=COMP, SEGTYPE=S1, PARENT=ORIGIN FIELDNAME=CAR, CARS, A16, $ . . . TABLE FILE CAR PRINT COMP.CAR AND CAR.CAR END
Esta solicitud imprime el campo con el alias CARS, dos veces.
Cuando solo hay un calificador, el nombre del segmento tiene prioridad sobre el nombre del archivo. Por consiguiente, si el nombre del archivo y del segmento es el mismo, se recupera el campo cualificado por el nombre del segmento.
FILENAME=CAR, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME=CNT.COUNTRY, ACNTRY, A10, $ FIELDNAME=COUNTRY, BCNTRY, A10, $ TABLE FILE CAR SUM CNT.COUNTRY END
En esta solicitud, la cadena CNT.COUNTRY se interpreta como que está haciendo referencia al campo llamado CNT.COUNTRY, no como referencia al operador de prefijo CNT. aplicado al campo llamado COUNTRY. Como resultado, la solicitud suma el campo cuyo alias en ACNTRY. Aunque CNT.COUNTRY contiene un punto, se trata de un nombre de campo no cualificado. No es un nombre cualificado ni un operador de prefijo actuando sobre un nombre de campo, ya que esto no está permitido en un archivo máster. La solicitud no cuenta los casos en que el campo presenta el alias BCNTRY.
Por ejemplo:
FILENAME=CAR, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME=COUNTRY, COUNTRY, A10, $ SEGNAME=PCT, SEGTYPE=S1, PARENT=ORIGIN FIELDNAME=CAR, CARS, I2, $ TABLE FILE CAR SUM PCT.CAR PCT.PCT.CAR BY COUNTRY END
Esta solicitud primero suma el campo con el alis CARS y, luego, el porcentaje de CARS por COUNTRY.
En el ejemplo siguiente, la elección es entre un nombre de campo no cualificado (el campo llamado ORIGIN.COUNTRY en el segmento ORIGIN) y un nombre de campo con cualificación de nombre de segmento (el campo llamado COUNTRY en el segmento ORIGIN). Se recupera el campo con cualificación de nombre de segmento:
FILENAME=CAR, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME=ORIGIN.COUNTRY, OCNTRY, A10, $ FIELDNAME=COUNTRY, CNTRY, A10, $ TABLE FILE CAR PRINT ORIGIN.COUNTRY END
Esta solicitud imprime el campo con el alias CNTRY. Para recuperar el campo con el alies OCNTRY, cualifique su nombre de campo, ORIGIN.COUNTRY, con su nombre de segmento, ORIGIN:
PRINT ORIGIN.ORIGIN.COUNTRY
FILENAME=CAR, SUFFIX=FOC SEGNAME=CAR, SEGTYPE=S1 FIELDNAME=CAR.CAR, CAR1, A10, $ SEGNAME=CAR.CAR, SEGTYPE=S1, PARENT=CAR FIELDNAME=CAR, CAR2, A10, $ TABLE FILE CAR PRINT CAR.CAR.CAR END
En este ejemplo, no está claro si desea que CAR.CAR.CAR haga referencia al campo llamado CAR.CAR, en el segmento CAR, o al campo llamado CAR del segmento CAR.CAR. (En cualquier caso, el nombre CAR.CAR no está cualificado y contiene un punto; no es un nombre cualificado. Los archivos máster no permiten nombres cualificados).
Independientemente de su intención, el nombre de campo cualificado es exactamente el mismo y no existe una elección clara entre los niveles de cualificación.
El campo con el alias CAR2 es el que queda imprimido, ya que su longitud de nombre de campo básico es la más corta. Esto difiere del ejemplo anterior, en que la elección era entre dos niveles de cualificación. Para recuperar el campo CAR1, debe especificar su alias.
WebFOCUS |