Die Reportausgabe im FOCUS-Format speichern

Vorgehensweise:

Referenz:

Unabhängig davon, ob der HOLD-Befehl in einer Anfrage oder nach der Ausführung einer Anfrage ausgegeben wird, kann er eine FOCUS-Datenquelle und eine zugehörige Masterdatei aus den Daten erstellen, die von der Reportanfrage extrahiert wurden. Mit diesem Feature können Sie Folgendes erstellen:

Tipp: Wenn Sie in einer Umgebung arbeiten, die SCAN, FSCAN, MODIFY oder Maintain unterstützt und Sie eine HOLD-Datei mit dem FOCUS-Format erstellen, können Sie die HOLD-Datei aktualisieren und Reports mit ihr erstellen. Weitere Informationen über diese Funktionen finden Sie in Ihrer Dokumentation.

Hinweis: Wenn Sie eine Datei im FOCUS-Format speichern, wird ggf. die folgende Warnmeldung (FOC441) erzeugt: Die Datei ist bereits vorhanden. Bei Neuerstellung wird Sie überschrieben. Die Ausgabe des SET WARNING=OFF-Befehls unterdrückt diese Meldung.


Nach oben

x
Syntax: HOLD-Dateien im FOCUS-Format erstellen

Verwenden Sie in einer Reportanfrage:

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

Hierbei gilt:

AS filename
Gibt einen Namen für die HOLD-Datei an. Wenn Sie keinen Dateinamen angeben, wird HOLD zum Default. Da nachfolgende HOLD-Befehle die vorherige HOLD-Datei überschreiben, wird empfohlen, in jeder Anfrage einen eindeutigen Dateinamen zu codieren, um die extrahierten Daten an eine separate Datei weiterzuleiten. Damit wird verhindert, dass sie vom nächsten HOLD-Befehl überschrieben werden.

Dieser Name kann bis zu 64 Zeichen lang sein.

Hinweis: Falls Sie auf einer OS/390-Plattform einen Namen angeben, der länger als 8 Zeichen ist, wird ein Mitgliedsname erstellt, wie es auch beschrieben ist im Handbuch Daten mit der WebFOCUS-Sprache beschreiben . Um den langen Namen mit dem kurzen zu verbinden, wird in der ersten Zeile der Masterdatei das $ VIRT-Attribut erzeugt. Die sich ergebende HOLD-Datei ist eine temporäre Datendatei. Geben Sie, um einer permanenten Datendatei den langen Masterdateinamen zuzuordnen, vor der HOLD-Anfrage den Befehl DYNAM ALLOCATE mit der Option LONGNAME aus. Der ddname im Befehl muss auf ein bestehendes Mitglied der MASTER PDS verweisen.

INDEX field1...
Ermöglicht Ihnen, FOCUS-Felder zu indizieren. Alle Felder, die nach INDEX angegeben werden, werden in der Masterdatei als FIELDTYPE=I angegeben. Es können bis zu vier Felder indiziert werden.

Beachten Sie, dass Sie, wenn Sie dieses Format im Hotscreen verwendet haben, in derselben Hotscreen-Session keinen weiteren HOLD-Befehl ausgeben können.


Nach oben

x
Referenz: Betriebssystem-Hinweise für HOLD-Dateien im FOCUS-Format

Die HOLD-Datei wird dynamisch zugewiesen, wenn sie nicht aktuell in z/OS zugewiesen ist. Dies bedeutet, dass das System ggf. die Datei am Ende der Session löscht, auch wenn Sie dies noch nicht selbst getan haben. Da HOLD-Dateien normalerweise gelöscht werden, ist dies der gewünschte Default. Wenn Sie jedoch die Masterdatei speichern möchten, müssen Sie sie dem ddname HOLDMAST als permanenten Datensatz zuordnen. Die Zuweisung kann in der standardmäßigen FOCUS CLIST vorgenommen werden. Beispiel:

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

Beachten Sie bitte, dass der ddname HOLDMAST nicht auf die gleiche PDS verweisen muss, auf die die ddnames MASTER und FOCEXEC verweisen.


Nach oben

x
Referenz: Die FOCUS-Dateistruktur steuern

Die Struktur der FOCUS-Datenquelle hängt von der Reportanfrage ab. Die Regeln sind wie folgt:

Verwenden Sie, um zu bestimmen, ob die Attribute ACCEPT und TITLE an die Masterdatei weitergegeben werden, die mit der HOLD-Datei assoziiert ist, den Befehl SET HOLDATTR. Verwenden Sie den Befehl SET ASNAMES, um das FIELDNAME-Attribut in der Masterdatei der HOLD-Datei zu steuern. Weitere Informationen über die Steuerung der Attribute TITLE, ACCEPT und FIELDNAME in einer HOLD-Masterdatei finden Sie unter Attribute in HOLD-Masterdateien steuern.



Beispiel: Eine HOLD-Datei im FOCUS-Format erstellen

Das folgende Beispiel erzeugt eine Untermenge der CAR-Datenquelle.

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

Diese Anfrage erstellt eine FOCUS-Datenquelle namens X1 mit einem Segment mit einem SEGTYPE von S3 (3 BY-Felder).

Die X1-Masterdatei wird in der Anfrage erstellt:

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


Beispiel: PRINT verwenden, um eine FOCUS-Datenquelle mit einem FOCLIST-Feld zu erstellen

In diesem Beispiel wird eine FOCUS-Datenquelle mit einem Segment mit einem SEGTYPE von S4 (3 BY-Felder und das FOCLIST FIELD) erstellt.

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

Folgende Masterdatei wird von dieser Anfrage erstellt:

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


Beispiel: Eine FOCUS-Datenquelle mit zwei Segmenten erstellen

Die folgende Anfrage enthält zwei SUM-Befehle. Der erste (SUM SALES BY COUNTRY) erstellt ein Segment mit COUNTRY als Schlüssel und den summierten Werten von SALES als Datenfeld. Der zweite (SUM SALES BY COUNTRY BY CAR BY MODEL) erstellt ein untergeordnetes Segment, wobei CAR und MODEL Schlüssel sind und SALES nicht.

Das Feld COUNTRY ist nicht Teil des Schlüssels im zweiten Segment. COUNTRY ist ein Schlüssel im Pfad zum zweiten Segment. Jede Wiederholung dieses Wertes ist überflüssig.

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

Hierbei wird eine FOCUS-Datenquelle mit zwei Segmenten erstellt:

Die Masterdatei für diese neu erstellte FOCUS-Datenquelle ist:

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


Beispiel: Eine FOCUS-Datenquelle mit drei Segmenten erstellen

In diesem Beispiel erstellt jeder Anzeigebefehl ein Segment.

Der Schlüssel des Root-Segments ist das BY-Feld (COUNTRY) und die Schlüssel des untergeordneten Segments sind die neuen BY-Felder. Das letzte Segment verwendet das interne FOCLIST-Feld als Teil des Schlüssels, da der Anzeigebefehl PRINT ist.

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

Die Masterdatei ist:

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