Dans cette section : |
Les commandes SET ASNAMES, SET HOLDLIST et SET HOLDATTR vous permettent de contrôler les attributs FIELDNAME, TITLE et ACCEPT dans les fichiers Master HOLD. Ces commandes sont lancées avant la requête de rapport et restent actives pendant toute la session, à moins que vous les modifiiez.
En plus, la commande SET HOLDSTAT vous permet d'inclure des commentaires et des informations DbA dans le fichier Master HOLD. Pour en savoir plus sur SET HOLDSTAT, reportez-vous au manuel Description de données en langage WebFOCUS . Pour en savoir plus sur les commandes SET, reportez-vous au manuel Développement d'applications de reporting .
Comment : Référence : |
Lorsque SET ASNAMES égale ON ou FOCUS, le littéral spécifié dans une phrase AS dans une requête de rapport est utilisé comme nom de champ dans un fichier Master HOLD. Cette commande contrôle également la façon dont les champs ACROSS sont nommés dans les fichiers HOLD.
SET ASNAMES = [ON|OFF|MIXED|FOCUS]
où :
PRINT COUNTRY AS 'PLACE,OF,ORIGIN'
Si une phrase AS est utilisée pour les champs dans la phrase ACROSS, chaque nouvelle colonne comprend un champ se composant du littéral dans la phrase AS concaténé au début de la valeur du premier champ utilisé dans la phrase ACROSS.
Dans l'exemple suivant, SET ASNAMES=ON entraîne l'utilisation du texte dans la phrase AS comme noms de champ dans le fichier Master HOLD. Les deux champs dans le fichier Master HOLD, NATION et AUTOMOBILE, comprennent les données relatives à COUNTRY et CAR.
SET ASNAMES=ON TABLE FILE CAR PRINT CAR AS 'AUTOMOBILE' BY COUNTRY AS 'NATION' ON TABLE HOLD AS HOLD1 END
La requête génère le fichier Master suivant :
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 requête suivante génère un fichier Master HOLD avec un nom de champ unique pour SALES et un nom de champ unique pour AVE.SALES. Les champs SALES et AVE.SALES auraient les deux été nommés SALES, si SET ASNAMES n'a pas été utilisé.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AND AVE.SALES AS 'AVERAGESALES' BY CAR ON TABLE HOLD AS HOLD2 END
La requête génère le fichier Master suivant :
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 requête suivante génère un fichier Master HOLD avec le littéral CASH concaténé à chaque valeur de COUNTRY.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS 'CASH' ACROSS COUNTRY ON TABLE HOLD AS HOLD3 END
La requête génère le fichier Master suivant :
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 ,$
Sans la commande SET ASNAMES, chaque champ dans le fichier HOLD s'appelle COUNTRY.
Pour générer des noms de champ pour les valeurs ACROSS à inclure seulement la valeur de champ, utilisez la phrase AS suivie de deux guillemets simples, comme suit :
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS '' ACROSS COUNTRY ON TABLE HOLD AS HOLD4 END
Voici le fichier Master résultant :
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 ,$
Comment : |
Vous pouvez utiliser la commande SET HOLDLIST pour limiter les champs dans les fichiers Master HOLD à ceux qui s'affichent dans une requête.
SET HOLDLIST = {PRINTONLY|ALL|ALLKEYS|EXPLICIT}
où :
Remarque : les champs de tri vertical (BY) spécifiés dans la requête avec l'option NOPRINT ne sont pas inclus dans le fichier HOLD même si HOLDLIST=ALL.
Le paramètre ALLKEYS permet la mise en cache de toutes les données nécessaires pour la manipulation d'un rapport actif.
Notez que SET HOLDLIST est aussi utilisable depuis une requête TABLE. Lorsqu'elle est utilisée avec MATCH, la commande SET HOLDLIST se comporte toujours comme si HOLDLIST égale ALL.
Lorsque HOLDLIST égale ALL, la requête TABLE suivante génère un fichier HOLD comprenant tous les champs spécifiés, y compris les champs NOPRINT et les valeurs calculées avec la commande COMPUTE.
SET HOLDLIST=ALL TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
La sortie est :
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 |
Lorsque HOLDLIST égale PRINTONLY, la requête TABLE suivante génère un fichier HOLD comprenant uniquement les champs pouvant s'afficher dans la sortie de rapport :
SET HOLDLIST=PRINTONLY TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
La sortie est :
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 requête suivante contre la source de données GGSALES a deux champs d'affichage reformatés (DOLLARS, UNITS). Le champ DOLLLARS est également un champ NOPRINT explicite. Le champ BY nommé CATEGORY est également un champ NOPRINT explicite :
SET HOLDLIST=ALL TABLE FILE GGSALES SUM UNITS/I5 DOLLARS/D12.2 NOPRINT BY REGION BY CATEGORY NOPRINT ON TABLE HOLD FORMAT FOCUS END
L'exécution de la requête avec SET HOLDLIST=ALL génère le fichier Master HOLD suivant. Notez que les champs DOLLARS et UNITS sont inclus deux fois, une fois avec le format d'origine (qui aurait été implicitement NOPRINTed si le rapport avait été imprimé plutôt que maintenu) et une fois avec le nouveau format. Cependant, le champ NOPRINTed BY (CATEGORY) n'est pas inclus :
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', $
L'exécution de la requête avec SET HOLDLIST=ALLKEYS génère le fichier Master HOLD suivant. Notez que les champs DOLLARS et UNITS sont inclus deux fois, une fois avec le format d'origine, qui aurait été implicitement NOPRINTed si le rapport avait été imprimé plutôt que conservé et une fois avec le nouveau format. Le champ NOPRINTed BY (CATEGORY) est inclus :
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', $
L'exécution de la requête avec SET HOLDLIST=PRINTONLY génère le fichier Master HOLD suivant. Seuls les champs qui auraient été imprimés dans la sortie de rapport sont inclus : REGION et UNITS avec le nouveau format (I5). Tous les champs NOPRINTed affichés explicitement et implicitement sont exclus, y compris le champ NOPRINTed 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', $
L'exécution de la requête avec SET HOLDLIST=EXPLICIT génère le fichier Master HOLD suivant. Les champs qui auraient été imprimés dans la sortie de rapport sont inclus de même que les champs NOPRINTed affichés explicitement (le champ d'affichage DOLLARS et le champ BY CATEGORY). Les champs NOPRINTed affichés implicitement (DOLLARS et UNITS avec leurs formats originaux) sont omis :
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', $
Comment : |
La commande SET HOLDATTR contrôle si les attributs TITLE et ACCEPT dans le fichier Master original sont propagés vers le fichier Master HOLD. SET HOLDATTR n'influence pas la façon dont les champs sont nommés dans le fichier Master HOLD.
Notez que si l'attribut TITLE n'est pas spécifié dans le fichier Master pour un champ dans une source de données, mais qu'il y a une phrase AS spécifiée pour le champ dans une requête de rapport, le champ correspondant dans le fichier HOLD est nommée en fonction de la phrase AS.
SET HOLDATTR =[ON|OFF|FOCUS]
où :
Dans cet exemple, le fichier Master de la source de données CAR spécifie les attributs TITLE et 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',$ . . .
En utilisant SET HOLDATTR=FOCUS, la requête suivante
SET HOLDATTR = FOCUS TABLE FILE CAR2 PRINT CAR BY COUNTRY ON TABLE HOLD FORMAT FOCUS AS HOLD5 END
génère le fichier Master suivant :
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 |