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.
Verwenden Sie in einer Reportanfrage:
ON TABLE HOLD [AS filename] FORMAT FOCUS [INDEX field1 field2 ...]
Hierbei gilt:
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.
Beachten Sie, dass Sie, wenn Sie dieses Format im Hotscreen verwendet haben, in derselben Hotscreen-Session keinen weiteren HOLD-Befehl ausgeben können.
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.
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.
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 ,$
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 ,$
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 ,$
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 |