Cómo guardar la salida de informe en formato FOCUS

Cómo:

Referencia:

Ya sea que se haya emitido en una solicitud o después de haber ejecutado la solicitud, el comando HOLD puede crear un origen de datos FOCUS y un archivo máster correspondiente de los datos extraídos de la solicitud de informe. Esta característica le permite crear:

Sugerencia: Si trabaja en un entorno que admite SCAN, FSCAN, MODIFY o Maintain y crea un archivo HOLD en formato FOCUS, puede actualizar o crear informes el archivo HOLD. Revise su documentación para obtener detalles acerca de estas funciones.

Nota: Si mantiene el formato FOCUS de un archivo puede aparecer el aviso FOC441: El archivo ya existe. Crear lo sobrescribe. Si incluye el comando SET WARNING=OFF no aparecerá ese mensaje.


Principio de página

x
Sintaxis: Cómo Crear archivos HOLD en formato FOCUS

En una solicitud de informe, utilice

ON TABLE HOLD [AS filename] FORMAT FOCUS [INDEX field1 field2 ...]

donde:

AS filename
Especifica un nombre para el archivo HOLD. Si no especifica un nombre de archivo, HOLD se convierte en el predeterminado. Dado que cada comando HOLD posterior anula el archivo HOLD anterior, se recomienda codificar un nombre de archivo distinto en cada solicitud para dirigir los datos extraídos a un archivo diferente, con lo que se evita que lo anule el próximo comando HOLD.

El nombre puede tener hasta 64 caracteres de longitud.

Nota: Si usa un nombre de más de ocho caracteres en OS/390, se genera un nombre de miembro de ocho caracteres, como se describe en el manual Cómo describir datos con el lenguaje WebFOCUS. Para relacionar el nombre largo con el nombre de miembro corto se genera el atributo $ VIRT en la línea superior del archivo máster. El archivo HOLD obtenido es un archivo de datos temporales. Para asignar el nombre largo de archivo máster a un archivo de datos permanente, emita el comando DYNAM ALLOCATE con la opción LONGNAME antes de la solicitud HOLD. El ddname en el comando debe referirse a un miembro existente del PDS MÁSTER.

INDEX field1...
Le permite indexar campos FOCUS. Todos los campos especificados después de INDEX se especifican como FIELDTYPE=I en el archivo máster. Se pueden indexar hasta cuatro campos.

Recuerde que una vez que utilice este formato desde Hot Screen, no podrá emitir otro comando HOLD mientras siga en la misma sesión de Hot Screen.


Principio de página

x
Referencia: Notas sobre el sistema operativo para archivos HOLD en formato FOCUS

El archivo HOLD queda asignado automáticamente, si no lo está ya en z/OS. Esto siginifica que el sistema podría borrar el archivo al final de la sesión, aunque no lo haya pedido. Puesto que se suele borrar los archivos HOLD, ésta es la opción predefinida. Sin embargo, si desea guardar el archivo máster, asígnelo al ddname HOLDMAST como un conjunto de datos permanentes. La asignación se puede realizar en la CLIST estándar de FOCUS. Por ejemplo:

ALLOC F(HOLDMAST)  DA('qualif.HOLDMAST') SHR REUSE

Tenga en cuenta que ddname HOLDMAST no debe referirse al mismo PDS a que se han referido los ddnames MÁSTER y FOCEXEC.


Principio de página

x
Referencia: Cómo controlar la estructura de datos de FOCUS

La estructura de los datos de FOCUS varía de acuerdo con la solicitud de datos. Las reglas son las siguientes:

Para controlar si los atributos ACCEPT y TITLE se propagan al archivo máster asocado con el archivo HOLD, utilice el comando SET HOLDATTR. Para controlar el atributo FIELDNAME en el archivo máster del archivo HOLD, utilice el comando SET ASNAMES. Para más información sobre cómo controlar los atributos TITLE, ACCEPT y FIELDNAME en un archivo máster HOLD, consulte Cómo controlar atributos en archivos máster HOLD .



Ejemplo: Cómo crear un archivo HOLD en formato FOCUS

El siguiente ejemplo crea un subconjunto del origen de datos CAR.

TABLE FILE CAR
SUM SALES BY COUNTRY BY CAR BY MODEL
ON TABLE HOLD AS X1 FORMAT FOCUS
END

Esta solicitud crea un origen de datos FOCUS de segmento único con un SEGTYPE de S3 (porque tiene tres campos BY) llamado X1.

La solicitud genera el archivo máster X1:

FILE=X1, SUFFIX=FOC
 SEGMENT=SEG01 ,SEGTYPE=S03
  FIELDNAME=COUNTRY      ,ALIAS=E01    ,USAGE=A10   ,$
  FIELDNAME=CAR          ,ALIAS=E02    ,USAGE=A16   ,$
  FIELDNAME=MODEL        ,ALIAS=E03    ,USAGE=A24   ,$
  FIELDNAME=SALES        ,ALIAS=E04    ,USAGE=I6    ,$


Ejemplo: Cómo utilizar PRINT para crear un origen de datos FOCUS con un campo FOCLIST

Este ejemplo crea un origen de datos de FOCUS de segmento único con un SEGTYPE de S4 en virtud de los tres campos BY y del campo FOCLIST.

TABLE FILE CAR
PRINT SALES BY COUNTRY BY CAR BY MODEL
ON TABLE HOLD AS X2 FORMAT FOCUS INDEX MODEL
END

El archivo máster creado mediante esta solicitud es:

FILE=X2, SUFFIX=FOC
 SEGMENT=SEG01, SEGTYPE=S04
  FIELDNAME=COUNTRY      ,ALIAS=E01    ,USAGE=A10   ,$
  FIELDNAME=CAR          ,ALIAS=E02    ,USAGE=A16   ,$
  FIELDNAME=MODEL        ,ALIAS=E03    ,USAGE=A24   ,FIELDTYPE=I,$
  FIELDNAME=FOCLIST      ,ALIAS=E04    ,USAGE=I5    ,$
  FIELDNAME=SALES        ,ALIAS=E05    ,USAGE=I6    ,$


Ejemplo: Cómo crear un origen de datos FOCUS de dos segmentos

La siguiente solicitud contiene dos comandos SUM. La primera, SUM SALES BY COUNTRY, crea un segmento con COUNTRY como valores resumidos y de clave de SALES como campo de datos. La segunda, SUM SALES BY COUNTRY BY CAR BY MODEL, crea un segmento descendente, con CAR y MODEL como claves y SALES como el campo que no es clave.

El campo COUNTRY no forma parte de la clave para el segundo segmento. COUNTRY es una clave de la ruta en el segundo segmento. Cualquier repetición de este valor resulta redundante.

TABLE FILE CAR
SUM SALES BY COUNTRY
SUM SALES BY COUNTRY BY CAR BY MODEL
ON TABLE HOLD AS X3 FORMAT FOCUS
END

Esto crea un origen de datos de FOCUS de dos segmentos:

El archivo máster de este origen de datos de FOCUS de reciente creación es:

FILE=X3, SUFFIX=FOC
 SEGMENT=SEG01, SEGTYPE=S01
  FIELDNAME=COUNTRY       ,ALIAS=E01    ,USAGE=A10    ,$
  FIELDNAME=SALES         ,ALIAS=E02    ,USAGE=I6     ,$
 SEGMENT=SEG02, SEGTYPE=S02,PARENT=SEG01
  FIELDNAME=CAR           ,ALIAS=E03    ,USAGE=A16    ,$
  FIELDNAME=MODEL         ,ALIAS=E04    ,USAGE=A24    ,$
  FIELDNAME=SALES         ,ALIAS=E05    ,USAGE=I6     ,$


Ejemplo: Cómo crear un origen de datos FOCUS de tres segmentos

En este ejemplo, cada comando de visualización crea un segmento.

La clave para el segmento raíz es el campo BY, COUNTRY, en tanto que las claves para los segmentos descendentes son los nuevos campos BY. El último segmento utiliza el campo interno FOCLIST como parte de la clave, pues el comando de visualización es PRINT.

TABLE FILE CAR
SUM SALES BY COUNTRY BY CAR
SUM SALES BY COUNTRY BY CAR BY MODEL
PRINT SALES BY COUNTRY BY CAR BY MODEL BY BODY
ON TABLE HOLD AS X4 FORMAT FOCUS INDEX COUNTRY MODEL
END

El archivo máster es:

FILE=X4, SUFFIX=FOC
 SEGMENT=SEG01, SEGTYPE =S02
  FIELDNAME=COUNTRY   ,ALIAS=E01     ,USAGE=A10   ,FIELDTYPE=I,$
  FIELDNAME=CAR       ,ALIAS=E02     ,USAGE=A16   ,$
  FIELDNAME=SALES     ,ALIAS=E03     ,USAGE=I6    ,$
 SEGMENT=SEG02, SEGTYPE =S01 ,PARENT=SEG01
  FIELDNAME=MODEL     ,ALIAS=E04     ,USAGE=A24   ,FIELDTYPE=I,$
  FIELDNAME=SALES     ,ALIAS=E05     ,USAGE=I6    ,$
 SEGMENT=SEG03, SEGTYPE =S02 ,PARENT=SEG02
  FIELDNAME=BODYTYPE  ,ALIAS=E06     ,USAGE=A12   ,$
  FIELDNAME=FOCLIST   ,ALIAS=E07     ,USAGE=I5    ,$
  FIELDNAME=SALES     ,ALIAS=E08     ,USAGE=I6    ,$

WebFOCUS