Attribute in HOLD-Masterdateien steuern

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 .


Nach oben

x
Feldnamen in einer HOLD-Masterdatei steuern

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.



x
Syntax: Feldnamen in einer HOLD-Masterdatei steuern
SET ASNAMES = [ON|OFF|MIXED|FOCUS]

Hierbei gilt:

OFF
Verwendet den in einer AS-Phrase angegebenen Literal nicht als Feldnamen in HOLD-Dateien und wirkt sich nicht darauf aus, wie ACROSS-Felder benannt werden.
ON
Ändert das Literal, das in einer AS-Phrase angegeben ist, in Großschreibung um, und gibt es als Feldnamen in der HOLD-Masterdatei weiter. Erstellt Namen für ACROSS-Felder, die aus dem Wert des AS-Namens bestehen, der an den Anfang des ACROSS-Feldwertes angehängt wird, und steuert, wie ACROSS-Felder in HOLD-Datein jedes Formats benannt werden.
MIXED
Verwendet das Literal, das in einer AS-Phrase für den Feldnamen angegeben wurde, wobei die Groß-/Kleinschreibung des AS-Namen beibehalten wird, und erstellt Namen für ACROSS-Felder, die aus dem Wert des AS-Namen bestehen, der an den Anfang des ACROSS-Feldwertes angehängt wird.
FOCUS
Verwendet den in einer AS-Phrase angegebenen Literal als Feldnamen und steuert nur, wie ACROSS-Felder in HOLD-Dateien im FOCUS-Format benannt werden. FOCUS ist der Defaultwert.


x
Referenz: Verwendungshinweise für das Steuern von Feldnamen in HOLD-Dateien


Beispiel: Feldnamen in der HOLD-Masterdatei steuern

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     ,$


Beispiel: Eindeutige Feldnamen mit SET ASNAMES angegeben

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   ,$


Beispiel: SET ASNAMES mit der ACROSS-Phrase verwenden

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     ,$

Nach oben

x
Felder in einer HOLD-Masterdatei steuern

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.



x
Syntax: Felder in einer HOLD-Datei steuern
SET HOLDLIST = {PRINTONLY|ALL|ALLKEYS|EXPLICIT}

Hierbei gilt:

PRINTONLY
Gibt an, dass nur die Felder, die in einem Report angezeigt würden, in die erzeugte HOLD-Datei aufgenommen werden. Felder, die nicht in einer Anfrage angezeigt werden (explizit oder implizit als NOPRINT-Felder ausgewiesen), werden nicht in die HOLD-Datei aufgenommen.
ALL
Gibt an, dass alle Anzeigefelder, auf die in einer Anfrage verwiesen wird, einschließlich berechneter Werte, in einer HOLD-Datei angezeigt werden. ALL ist der Defaultwert. OLD kann als Synonym für ALL verwendet werden.

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.

ALLKEYS
Gibt alle Felder einschließlich NOPRINTed BY-Felder weiter.

Die Einstellung ALLKEYS ermöglicht das Zwischenspeichern aller Daten, die nötig sind, um einen Active Report zu manipulieren.

EXPLICIT
Enthält Felder in der HOLD- oder PCHOLD-Datei, die in der Reportausgabe explizit weggelassen werden, indem die Option NOPRINT in der Anfrage verwendet wird, enthält aber keine Felder, die implizit NOPRINTed sind. Wenn beispielsweise ein Feld in der Anfrage neu formatiert wird, sind zwei Versionen des Feldes vorhanden, und zwar das mit dem neuen Format und das mit dem ursprünglichen Format, das implizit NOPRINTed ist

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.



Beispiel: HOLDLIST=ALL verwenden

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


Beispiel: HOLDLIST= PRINTONLY verwenden

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


Beispiel: Masterdateien vergleichen, die mit unterschiedlichen HOLDLIST-Einstellungen erstellt wurden

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', $

Nach oben

x
Die Attribute TITLE und ACCEPT in der HOLD-Masterdatei steuern

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.



x
Syntax: TITLE- und ACCEPT-Attribute steuern
SET HOLDATTR =[ON|OFF|FOCUS]

Hierbei gilt:

ON
Verwendet das TITLE-Attribut, wie es in der ursprünglichen Masterdatei in HOLD-Dateien aller Formate angegeben wurde. Das ACCEPT-Attribut wird nur an die HOLD-Masterdatei für HOLD-Dateien im FOCUS-Format weitergegeben.
OFF
Die Attribute TITLE oder ACCEPT aus der ursprünglichen Masterdatei werden in der HOLD-Masterdatei nicht verwendet.
FOCUS
Verwendet die Attribute ACCEPT und TITLE nur für HOLD-Dateien im FOCUS-Format. FOCUS ist der Defaultwert.


Beispiel: Die Attribute TITLE und ACCEPT in einer HOLD-Masterdatei steuern

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