In diesem Abschnitt: |
Mit den Befehlen SET ASNAMES, SET HOLDLIST und SET HOLDATTR können Sie die Attribute FIELDNAME, TITLE und ACCEPT in den HOLD Masterdateien steuern. Diese Befehle werden vor der Reportanfrage ausgegeben und bleiben während der gesamten Sitzung gültig (es sei denn, Sie ändern sie).
Zusätzlich können Sie mit dem SET HOLDSTATE-Befehl Anmerkungen und DBA-Informationen in die HOLD-Masterdatei aufnehmen. Weitere Informationen über SET HOLDSTAT finden Sie im Handbuch Daten mit der WebFOCUS-Sprache beschreiben . Genaueres über SET-Befehle finden Sie im Handbuch Reportanwendungen entwickeln .
Vorgehensweise: Referenz: |
Wenn SET ASNAMES auf ON, MIXED oder FOCUS gestellt wird, wird das in einer AS-Phrase angegebene Literal als Feldname in einer HOLD-Masterdatei verwendet. Dieser Befehl steuert auch, wie ACROSS-Felder in HOLD-Dateien benannt werden.
SET ASNAMES = [ON|OFF|MIXED|FOCUS]
Hierbei gilt:
PRINT COUNTRY AS 'PLACE,OF,ORIGIN'
Falls eine AS-Phrase für die Felder in der ACROSS-Phrase verwendet wird, hat jede neue Spalte einen Feldnamen, der aus dem Anfang des Wertes des ersten Feldes in der ACROSS-Phrase und dem Literal in der AS-Phrase besteht.
Im folgenden Beispiel führt SET ASNAMES=ON dazu, dass der Text in der AS-Phrase für die Feldnamen in der HOLD1-Masterdatei verwendet wird. NATION und AUTOMOBILE, die zwei Felder in der HOLD1-Masterdatei, enthalten die Daten für COUNTRY und CAR.
SET ASNAMES=ON TABLE FILE CAR PRINT CAR AS 'AUTOMOBILE' BY COUNTRY AS 'NATION' ON TABLE HOLD AS HOLD1 END
Die Anfrage erzeugt die folgende Masterdatei:
FILE=HOLD1, SUFFIX=FIX SEGMENT=HOLD1, SEGTYPE=S01,$ FIELDNAME=NATION ,ALIAS=E01 ,USAGE=A10 ,ACTUAL=A12 ,$ FIELDNAME=AUTOMOBILE ,ALIAS=E02 ,USAGE=A16 ,ACTUAL=A16 ,$
Die folgende Anfrage erzeugt eine HOLD-Masterdatei mit einem eindeutigen Feldnamen für SALES und einem für AVE.SALES. Sowohl SALES als auch AVE.SALES würden, wenn SET ASNAMES nicht verwendet worden wäre, SALES heißen.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AND AVE.SALES AS 'AVERAGESALES' BY CAR ON TABLE HOLD AS HOLD2 END
Die Anfrage erzeugt die folgende Masterdatei:
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 ,$
Die folgende Anfrage erzeugt eine HOLD-Masterdatei mit dem Literal CASH, das an alle Werte von COUNTRY angehängt wird.
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS 'CASH' ACROSS COUNTRY ON TABLE HOLD AS HOLD3 END
Die Anfrage erzeugt die folgende Masterdatei:
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 ,$
Ohne den SET ASNAMES-Befehl erhalten alle Felder in HOLD FILE den Namen COUNTRY.
Verwenden Sie, um Feldnamen für ACROSS-Werte zu erzeugen, die nur den Feldwert enthalten, die AS-Phrase gefolgt von zwei einfachen Anführungszeichen:
SET ASNAMES=ON TABLE FILE CAR SUM SALES AS '' ACROSS COUNTRY ON TABLE HOLD AS HOLD4 END
Die sich ergebende Masterdatei sieht folgendermaßen aus:
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 ,$
Vorgehensweise: |
Sie können den Befehl SET HOLDLIST verwenden, um die Felder in HOLD-Masterdateien auf die Felder zu beschränken, die in einer Anfrage angezeigt werden.
SET HOLDLIST = {PRINTONLY|ALL|ALLKEYS|EXPLICIT}
Hierbei gilt:
Hinweis: Vertikale Sortierfelder (BY), die in der Anfrage mit der NOPRINT-Option angegeben werden, sind in der HOLD-Datei nicht enthalten, selbst wenn HOLDLIST=ALL.
Die Einstellung ALLKEYS ermöglicht das Zwischenspeichern aller Daten, die nötig sind, um einen Active Report zu manipulieren.
Beachten Sie, dass SET HOLDLIST auch von einer TABLE-Anfrage aus ausgegeben werden kann. Wenn SET HOLDLIST mit MATCH verwendet wird, verhält es sich immer so, als ob HOLDLIST auf ALL gestellt wäre.
Wenn HOLDLIST auf ALL gestellt ist, erzeugt die folgende TABLE-Anfrage eine HOLD-Datei, die alle angegebenen Felder einschließlich NOPRINT-Felder und Werte, die mit dem COMPUTE-Befehl berechnet wurden, enthält.
SET HOLDLIST=ALL TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
Die Ausgabe ist:
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 |
Wenn HOLDLIST auf PRINTONLY gestellt ist, erstellt die folgende TABLE-Anfrage eine HOLD-Datei, die nur Felder enthält, die in der Reportausgabe angezeigt würden:
SET HOLDLIST=PRINTONLY TABLE FILE CAR PRINT CAR MODEL NOPRINT COMPUTE TEMPSEATS=SEATS+1; BY COUNTRY ON TABLE HOLD END ? HOLD
Die Ausgabe ist:
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 |
Die folgende Anfrage mit der GGSALES-Datenquelle hat zwei neu formatierte Anzeigefelder (DOLLARS, UNITS). Das DOLLARS-Feld ist auch ein explizites NOPRINT-Feld. Das BY-Feld namens CATEGORY ist auch ein explizites NOPRINT-Feld:
SET HOLDLIST=ALL TABLE FILE GGSALES SUM UNITS/I5 DOLLARS/D12.2 NOPRINT BY REGION BY CATEGORY NOPRINT ON TABLE HOLD FORMAT FOCUS END
Wenn Sie die Anfrage mit SET HOLDLIST=ALL ausführen, wird die folgende HOLD-Masterdatei erzeugt. Beachten Sie, dass die Felder DOLLARS und UNITS zweimal enthalten sind, und zwar einmal mit dem ursprünglichen Format (welches implizit NOPRINTed gewesen wäre, wenn der Report gedruckt und nicht gehalten worden wäre) und einmal mit dem neuen Format. Es ist jedoch das NOPRINTed BY-Feld (CATEGORY) nicht enthalten:
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', $
Wenn Sie die Anfrage mit SET HOLDLIST=ALLKEYS ausführen, wird die folgende HOLD-Masterdatei erzeugt. Beachten Sie, dass die Felder DOLLARS und UNITS zweimal enthalten sind, und zwar einmal mit dem ursprünglichen Format, welches implizit NOPRINTed gewesen wäre, wenn der Report gedruckt und nicht gehalten worden wäre, und einmal mit dem neuen Format. Das NOPRINTed BY-Feld (CATEGORY) ist enthalten:
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', $
Wenn Sie die Anfrage mit SET HOLDLIST=PRINTONLY ausführen, wird die folgende HOLD-Masterdatei erzeugt. Nur die Felder, die tatsächlich in der Reportausgabe gedruckt worden wären, sind enthalten: REGION und UNITS mit dem neuen Format (I5). Alle expliziten und impliziten NOPRINTed-Felder sind ausgeschlossen, einschließlich des NOPRINTed BY-Feldes (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', $
Wenn Sie die Anfrage mit SET HOLDLIST=EXPLICIT ausführen, wird die folgende HOLD-Masterdatei erzeugt. Die Felder, die tatsächlich in der Reportausgabe gedruckt worden wären, sind enthalten, sowie die explizit NOPRINTed-Felder (das Anzeigefeld DOLLARS und das BY-Feld CATEGORY). Die implizit NOPRINTed-Felder (DOLLARS und UNITS mit ihren ursprünglichen Formaten) werden weggelassen:
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', $
Vorgehensweise: |
Der Befehl SET HOLDATTR steuert, ob die Attribute TITLE und ACCEPT in der ursprünglichen Masterdatei an die HOLD-Masterdatei weitergegeben werden. SET HOLDATTR wirkt sich nicht darauf aus, wie Felder in der HOLD-Masterdatei benannt werden.
Beachten Sie, dass, wenn für ein Feld in einer Datenquelle das Attribut TITLE in der Masterdatei nicht angegeben ist, jedoch eine AS-Phrase für das Feld in einer Reportanfrage angegeben ist, das entsprechende Feld in der HOLD-Datei wie in der AS-Phrase benannt wird.
SET HOLDATTR =[ON|OFF|FOCUS]
Hierbei gilt:
In diesem Beispiel gibt die Masterdatei der CAR-Datenquelle die Attribute TITLE und ACCEPT an:
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',$ . . .
Wenn SET HOLDATTR=FOCUS verwendet wird, erzeugt die folgende Anfrage
SET HOLDATTR = FOCUS TABLE FILE CAR2 PRINT CAR BY COUNTRY ON TABLE HOLD FORMAT FOCUS AS HOLD5 END
diese HOLD-Masterdatei:
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 |