En esta sección: |
Los comandos SET ASNAMES, SET HOLDLIST y SET HOLDATTR le permiten controlar los atributos FIELDNAME, TITLE y ACCEPT en archivos máster HOLD. Estos comandos se emiten antes de la solicitud de informe y permanecen activos durante la sesión, siempre que no los modifique.
Además, el comando SET HOLDSTAT le permite incluir comentarios e información DBA en el archivo máster HOLD. Para más información sobre SET HOLDSTAT, consulte el manual Cómo describir datos con el lenguaje WebFOCUS. . Para más detalles sobre comandos SET, consulte el manual Cómo desarrollar aplicaciones de informes .
Cómo: Referencia: |
Cuando SET ASNAMES está activado, se emplea el literal, MIXED o FOCUS, especificado en una frase AS de una solicitud de informe como nombre de campo en un archivo máster HOLD. Este comando también controla los nombres de campos ACROSS en archivos HOLD.
SET ASNAMES = [ON|OFF|MIXED|FOCUS]
donde:
PRINT COUNTRY AS 'PLACE,OF,ORIGIN'
Si se utiliza una frase AS para los campos en la frase ACROSS, cada nueva columna tiene un nombre de campo compuesto por el literal que aparece en la frase AS concatenado al principio del valor del primer campo utilizado en la frase ACROSS.
En el siguiente ejemplo, SET ASNAMES=ON hace que se use el texto en la frase AS como nombres de campo en el archivo máster HOLD1. Los dos campos en el archivo máster HOLD1, NATION y AUTOMOBILE, contienen los datos para COUNTRY y CAR.
SET ASNAMES=ON TABLE FILE CAR PRINT CAR AS 'AUTOMOBILE' BY COUNTRY AS 'NATION' ON TABLE HOLD AS HOLD1 END
Esta solicitud genera el siguiente archivo máster:
FILE=HOLD1, SUFFIX=FIX SEGMENT=HOLD1, SEGTYPE=S01,$ FIELDNAME=NATION ,ALIAS=E01 ,USAGE=A10 ,ACTUAL=A12 ,$ FIELDNAME=AUTOMOBILE ,ALIAS=E02 ,USAGE=A16 ,ACTUAL=A16 ,$
La siguiente solicitud genera un archivo máster HOLD con un nombre de campo distintivo para SALES y uno para AVE.SALES. Tanto SALES como AVE.SALES se llamarán SALES si no se hubiera utilizado SET ASNAMES.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AND AVE.SALES AS 'AVERAGESALES' BY CAR ON TABLE HOLD AS HOLD2 END
Esta solicitud genera el siguiente archivo máster:
FILE=HOLD2, SUFFIX=FIX SEGMENT=HOLD2, SEGTYPE=S01,$ FIELDNAME=CAR ,ALIAS=E01 ,USAGE=A16 ,ACTUAL=A16 ,$ FIELDNAME=SALES ,ALIAS=E02 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=AVERAGESALES ,ALIAS=E03 ,USAGE=I6 ,ACTUAL=I04 ,$
La siguiente solicitud genera un archivo máster HOLD con el literal CASH concatenado a cada valor de COUNTRY.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS 'CASH' ACROSS COUNTRY ON TABLE HOLD AS HOLD3 END
Esta solicitud genera el siguiente archivo máster:
FILE=HOLD3, SUFFIX=FIX SEGMENT=HOLD3, SEGTYPE=S01,$ FIELDNAME=CASHENGLAND ,ALIAS=E01 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=CASHFRANCE ,ALIAS=E02 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=CASHITALY ,ALIAS=E03 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=CASHJAPAN ,ALIAS=E04 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=CASHW GERMANY ,ALIAS=E05 ,USAGE=I6 ,ACTUAL=I04 ,$
Sin el comando SET ASNAMES, cada campo en el HOLD FILE se llama COUNTRY.
Para generar nombres de campos para valores ACROSS que incluyan solamente el valor de campo, utilice la frase AS seguida de dos comillas simples, como se muestra a continuación:
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS '' ACROSS COUNTRY ON TABLE HOLD AS HOLD4 END
El archivo máster resultante tiene el siguiente aspecto:
FILE=HOLD4, SUFFIX=FIX SEGMENT=HOLD4, SEGTYPE=S0,$ FIELDNAME=ENGLAND ,ALIAS=E01 ,USAGE=I6 ,ACTUAL=I04 ,$ FIELDNAME=FRANCE ,ALIAS=E02 ,USAGE=I6 ,ACTUALI04 ,$ FIELDNAME=ITALY ,ALIAS=E03 ,USAGE=I6 ,ACTUALI04 ,$ FIELDNAME=JAPAN ,ALIAS=E04 ,USAGE=I6 ,ACTUALI04 ,$ FIELDNAME=W GERMANY ,ALIAS=E05 ,USAGE=I6 ,ACTUALI04 ,$
Cómo: |
Puede utilizar el comando SET HOLDLIST para restringir los campos en los archivos máster HOLD sólo a aquellos que aparecen en una solicitud.
SET HOLDLIST = {PRINTONLY|ALL|ALLKEYS|EXPLICIT}
donde:
Nota: Los campos de clasificación vertical (BY), especificados en la solicitud con la opción NOPRINT, no están incluidos en el archivo HOLD, aun cuando HOLDLIST=ALL.
La propiedad ALLKEYS permite guardar todos los datos necesarios para manipular un informe activo, en la caché.
Tenga en cuenta que también se puede emitir SET HOLDLIST desde dentro de una solicitud TABLE. Cuando se utiliza con MATCH, SET HOLDLIST siempre se comporta como si HOLDLIST estuviera ajustado para ALL.
Cuando HOLDLIST ha sido ajustado a ALL, la siguiente solicitud TABLE genera un archivo HOLD que contiene todos los campos especificados, incluyendo campos NOPRINT y valores calculados con el comando COMPUTE.
SET HOLDLIST=ALL TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
La salida es:
NUMBER OF RECORDS IN TABLE= 18 | LINE= | 18 | ||
DEFINITION OF HOLD FILE: HOLD | ||||
FIELDNAME | ALIAS | FORMAT | ||
COUNTRY | E01 | A10 | ||
CAR | E02 | A16 | ||
MODEL | E03 | A24 | ||
SEATS | E04 | I3 | ||
TEMPSEATS | E05 | D12.2 |
Cuando HOLDLIST ha sido ajustado a PRINTONLY, la siguiente solicitud TABLE genera un archivo HOLD que contiene solamente campos que aparecerían en salida de informe:
SET HOLDLIST=PRINTONLY TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
La salida es:
NUMBER OF RECORDS IN TABLE= 18 | LINES= | 18 | ||
DEFINITION OF HOLD FILE: HOLD | ||||
FIELDNAME | ALIAS | FORMAT | ||
COUNTRY | E01 | A10 | ||
CAR | E02 | A16 | ||
TEMPSEATS | E03 | D12.2 |
La siguiente solicitud, basada en el origen de datos GGSALES, tiene dos campos de visualización (DOLLARS, UNITS) cuyo formato ha sido modificado. Además, el campo DOLLARS también es un campo NOPRINT. El campo BY llamado CATEGORY también se trata de un campo NOPRINT explícito:
SET HOLDLIST=ALL TABLE FILE GGSALES SUM UNITS/I5 DOLLARS/D12.2 NOPRINT BY REGION BY CATEGORY NOPRINT ON TABLE HOLD FORMAT FOCUS END
Si ejecuta la solicitud con SET HOLDLIST=ALL, se genera el siguiente archivo máster HOLD. Tenga en cuenta que los campos DOLLARS y UNITS se han incluido dos veces, una con el formato original (designado implícitamente como NOPRINT, si el informe se hubiese imprimido en lugar de retenido) y otra con el formato nuevo. Sin embargo, el campo BY designado como NOPRINT (CATEGORY) no está incluido:
FILENAME=HOLD, SUFFIX=FOC , $ SEGMENT=SEG01, SEGTYPE=S1, $ FIELDNAME=REGION, ALIAS=E01, USAGE=A11, TITLE='Region', DESCRIPTION='Region code', $ FIELDNAME=UNITS, ALIAS=E02, USAGE=I08, TITLE='Unit Sales', DESCRIPTION='Number of units sold', $ FIELDNAME=UNITS, ALIAS=E03, USAGE=I5, TITLE='Unit Sales', $ FIELDNAME=DOLLARS, ALIAS=E04, USAGE=I08, TITLE='Dollar Sales', DESCRIPTION='Total dollar amount of reported sales', $ FIELDNAME=DOLLARS, ALIAS=E05, USAGE=D12.2, TITLE='Dollar Sales', $
Si ejecuta la solicitud con SET HOLDLIST=ALLKEYS, se genera el siguiente archivo máster HOLD. Tenga en cuenta que los campos DOLLARS y UNITS se han incluido dos veces, una con el formato original, designado implícitamente como NOPRINT, si el informe se hubiese imprimido en lugar de retenido, y otra con el formato nuevo. Sin embargo, el campo BY designado como NOPRINT (CATEGORY) está incluido:
FILENAME=HOLD, SUFFIX=FOC , $ SEGMENT=SEG01, SEGTYPE=S2, $ FIELDNAME=REGION, ALIAS=E01, USAGE=A11, TITLE='Region', DESCRIPTION='Region code', $ FIELDNAME=CATEGORY, ALIAS=E02, USAGE=A11, TITLE='Category', DESCRIPTION='Product category', $ FIELDNAME=UNITS, ALIAS=E03, USAGE=I08, TITLE='Unit Sales', DESCRIPTION='Number of units sold', $ FIELDNAME=UNITS, ALIAS=E04, USAGE=I5, TITLE='Unit Sales', $ FIELDNAME=DOLLARS, ALIAS=E05, USAGE=I08, TITLE='Dollar Sales', DESCRIPTION='Total dollar amount of reported sales', $ FIELDNAME=DOLLARS, ALIAS=E06, USAGE=D12.2, TITLE='Dollar Sales', $
Si ejecuta la solicitud con SET HOLDLIST=PRINTONLY, se genera el siguiente archivo máster HOLD. Los únicos campos que hubieran aparecido realmente en la salida del informe están incluidos: REGIONS y UNITS, con el formato nuevo (I5). Se excluyen todos los campos NOPRINT explícitos e implícitos, incluido el campo BY (CATEGORY):
FILENAME=HOLD , SUFFIX=FOC , $ SEGMENT=SEG01, SEGTYPE=S1, $ FIELDNAME=REGION, ALIAS=E01, USAGE=A11, TITLE='Region', DESCRIPTION='Region code', $ FIELDNAME=UNITS, ALIAS=E02, USAGE=I5, TITLE='Unit Sales', $
Si ejecuta la solicitud con SET HOLDLIST=EXPLICIT, se genera el siguiente archivo máster HOLD. Los campos que hubieran aparecido realmente en la salida del informe están incluidos y, por tanto, son campos NOPRINT explícitos (el campo de visualización DOLLARS y el campo BY CATEGORY). Los campos NOPRINT implícitos (DOLLARS y UNITS en su formato original) quedan omitidos:
FILENAME=HOLD, SUFFIX=FOC , $ SEGMENT=SEG01, SEGTYPE=S2, $ FIELDNAME=REGION, ALIAS=E01, USAGE=A11, TITLE='Region', DESCRIPTION='Region code', $ FIELDNAME=CATEGORY, ALIAS=E02, USAGE=A11, TITLE='Category', DESCRIPTION='Product category', $ FIELDNAME=UNITS, ALIAS=E03, USAGE=I5, TITLE='Unit Sales', $ FIELDNAME=DOLLARS, ALIAS=E04, USAGE=D12.2, TITLE='Dollar Sales', $
Cómo: |
El comando SET HOLDATTR controla si los atributos TITLE y ACCEPT en el archivo máster original se propagan al archivo máster HOLD. SET HOLDATTR no afecta la manera en que se nombran los campos en el archivo máster HOLD.
Tenga en cuenta que si un campo en un origen de datos carece del atributo TITLE especificado en el archivo máster, pero existe una frase AS especificada para el campo en una solicitud de informe, el campo correspondiente en el archivo HOLD se nombra de acuerdo con la frase AS.
SET HOLDATTR =[ON|OFF|FOCUS]
donde:
En este ejemplo, el archivo máster para el origen de datos CAR especifica los atributos TITLE y ACCEPT:
FILENAME=CAR2, SUFFIX=FOC SEGNAME=ORIGIN, SEGTYPE=S1 FIELDNAME =COUNTRY, COUNTRY, A10, TITLE='COUNTRY OF ORIGIN', ACCEPT='CANADA' OR 'ENGLAND' OR 'FRANCE' OR 'ITALY' OR 'JAPAN' OR 'W GERMANY', FIELDTYPE=I,$ SEGNAME=COMP, SEGTYPE=S1, PARENT=ORIGIN FIELDNAME=CAR, CARS, A16, TITLE='NAME OF CAR',$ . . .
Con SET HOLDATTR=FOCUS, la solicitud siguiente
SET HOLDATTR = FOCUS TABLE FILE CAR2 PRINT CAR BY COUNTRY ON TABLE HOLD FORMAT FOCUS AS HOLD5 END
genera este archivo máster HOLD:
FILE=HOLD5, SUFFIX=FOC SEGMENT=SEG01, SEGTYPE=S02 FIELDNAME=COUNTRY ,USAGE=E01 ,ACTUAL=A10 TITLE='COUNTRY OF ORIGIN', ACCEPT=CANADA ENGLAND FRANCE ITALY JAPAN 'W GERMANY',$ FIELDNAME=FOCLIST ,USAGE=E02 ,ACTUAL=I5 ,$ FIELDNAME=CAR ,USAGE=E03 ,ACTUAL=A16 , TITLE='NAME OF CAR' ,$
WebFOCUS |