In diesem Abschnitt: |
Viele Reports benötigen Ergebnisse, die in vorherigen Reports entwickelt wurden. Dies kann nur erreicht werden, wenn eine Speicherstelle für zwischenzeitliche Werte zur Verfügung gestellt wird. Wenn Sie z. B.das Eigenkapital in einer Bilanz berechnen möchten, müssen Sie zuvor den Nettogewinn in einer Erfolgsrechnung berechnen. FML kann ausgewählte Zeilen aus einem oder mehreren Modellen speichern, indem diese in einer Arbeitsdatei abgelegt werden. Die abgelegten Zeilen können dann aus der Arbeitsdatei abgerufen und wiederverwendet werden.
Die Default-Arbeitsdatei ist FOCPOST. Dies ist eine kommabegrenzte Datei mit der Sie Reports direkt erstellen können, wenn eine FOCPOST-Masterdatei verfügbar ist. Um die Arbeitsdatei in einer Anfrage verwenden zu können, müssen Sie dem FOCPOST-ddname einen physischen Namen zuweisen, bevor Sie den Report ausführen, der die Daten ablegt, und nochmal, bevor der Report ausgeführt wird, der die Daten abruft.
Sie können der Datei den physischen Namen zuweisen, indem Sie einen FILEDEF-Befehl in Windows und UNIX oder einen TSO ALLOCATE- oder DYNAM ALLOCATE-Befehl in z/OS ausgeben, bevor die Anfrage ausgeführt wird. Sie können einen FILEDEF-Befehl mit dem Zuweisung-Assistent erstellen.
Sie können zwar einen FML-Report nicht komplett aus Daten erstellen, die Sie direkt in die Anfrage eingeben, aber Sie können einen Report komplett aus Daten erstellen, die in einer kommabegrenzten Arbeitsdatei gespeichert sind.
Vorgehensweise: |
Sie können jede beliebige TAG-, RECAP- oder DATA-Zeile speichern, indem Sie die Ausgabe in einer Datei ablegen. Sie können diese Zeilen verwenden, als ob sie von einer DATA-Zeile zur Verfügung gestellt würden.
Die Zeile wird, je nach ihren anderen Optionen, wie gewohnt im Report verarbeitet und dann abgelegt. Das Label der Zeile wird zuerst geschrieben, gefolgt von den numerischen Werten der Spalten, die alle kommabegrenzt sind und mit dem Schlusszeichen ($) enden. Weitere Informationen finden Sie unter Zeilen in einer Arbeitsdatei ablegen.
Hinweis: Nur Felder, die in der Reportausgabe tatsächlich angezeigt werden, werden abgelegt. Felder, die nicht angezeigt werden (beispielsweise Felder, für die die Option NOPRINT angegeben wurde, zusätzliche Felder, die erzeugt werden, wenn Sie die Felder in einer Anfrage neu formatieren, oder Felder, die durch die Verwendung in einer Berechnung impliziert wurden), werden nicht abgelegt.
Die Syntax für das Speichern jeder beliebigen TAG-, RECAP- oder DATA-Zeile ist:
POST [TO ddname]
Hierbei gilt:
Ist der logische Name, den Sie der Arbeitsdatei zuweisen, in der Sie die Daten ablegen.
Fügen Sie diese Syntax den Zeilen hinzu, die Sie in der Arbeitsdatei ablegen möchten.
Die folgende Anfrage erstellt einen FML-Report und legt zwei Tag-Zeilen in der LEDGEOUT-Arbeitsdatei ab:
FILEDEF LEDGEOUT DISK [APP]\LEDGEOUT.DAT
DEFINE FILE LEDGER CUR_YR/I5C=AMOUNT; LAST_YR/I5C=.87*CUR_YR - 142; END
TABLE FILE LEDGER
SUM CUR_YR LAST_YR
FOR ACCOUNT
1100 LABEL AR POST TO LEDGEOUT OVER
1200 LABEL INV POST TO LEDGEOUT
END
Die Ausgabe wird im folgenden Bild illustriert.
Sie können abgelegte Zeilen aus jeder beliebigen Arbeitsdatei abrufen und sie verwenden, als ob sie in einer DATA-Zeile zur Verfügung gestellt würden, indem Sie einer FML-Anfrage die folgende Phrase hinzufügen.
DATA PICKUP [FROM ddname] id1 [OR id2 ...] [LABEL label] [AS 'text']
Hierbei gilt:
Ist der logische Name der Arbeitsdatei, aus der Sie Daten abrufen.
Ist das Label, das der abgelegten Datenzeile in der Arbeitsdatei zugewiesen wurde, die nun aufgerufen wird.
Ist das Label, das Sie den Daten, die Sie aufrufen, zuweisen möchten.
Das Label, das Sie den aufgerufenen Daten zuweisen, kann, muss aber nicht, mit dem Label (der ID) der abgelegten Daten übereinstimmen.
Sie können LABEL- und AS-Phrasen aufnehmen, aber WHEN EXISTS wird nicht unterstützt.
Hinweis: Die abgerufenen Felder werden im Speicher-Repository des Reports (interne Matrix) allen Feldern (gedruckt oder nicht gedruckt) zugeordnet. Wenn die Matrix Spalten enthält, die den Feldern in der abgelegten Datei nicht entsprechen, kann es vorkommen, dass die abgerufenen Werte nicht richtig ausgerichtet sind. Wenn Sie beispielsweise ein Feld in der PICKUP-Anfrage neu formatieren, wird dieses Feld in zwei Spalten in der internen Matrix dargestellt. Die abgelegte Datei hat jedoch nur einen Wert, der dieses Feld darstellt, und die abgerufenen Werte werden den zugehörigen Spalten in der Matrix nicht richtig zugeordnet.
Im folgenden Beispiel werden die Daten in der LEDGER-Datenquelle und in der LEDGEOUT-Arbeitsdatei in der RECAP-Berechnung verwendet. Um zu sehen, wie diese Datei erstellt wurde, gehen Sie zu Zeilen in einer Arbeitsdatei ablegen.
Tipp: Sie müssen der Datei einen logischen Namen zuweisen, indem Sie einen FILEDEF-Befehl in Windows und UNIX oder einen DYNAM ALLOCATE-Befehl in z/OS ausstellen, bevor Sie die Anfrage ausführen. Sie können einen FILEDEF-Befehl mit dem Zuweisung-Assistent erstellen.
DEFINE FILE LEDGER CUR_YR/I5C=AMOUNT; LAST_YR/I5C=.87*CUR_YR - 142; END
TABLE FILE LEDGER SUM CUR_YR LAST_YR FOR ACCOUNT 1010 TO 1030 AS 'CASH' LABEL CASH OVER DATA PICKUP FROM LEDGEOUT AR AS 'ACCOUNTS RECEIVABLE' LABEL AR OVER DATA PICKUP FROM LEDGEOUT INV AS 'INVENTORY' LABEL INV OVER BAR OVER RECAP CUR_ASSET/I5C = CASH + AR + INV; END
Die Ausgabe wird im folgenden Bild illustriert.
Die folgende Zeile kann verwendet werden, um die Summe der zwei Konten aus LEDGEOUT aufzurufen.
DATA PICKUP FROM LEDGEOUT AR OR INV AS 'ACCTS REC AND INVENTORY'
Hinweis: Da die Zeilen in einer PICKUP-Datei in standardmäßigem kommabegrenztem Format gespeichert sind, können sie entweder durch ein vorheriges Ablegen oder direkt von einem Benutzer zur Verfügung gestellt werden.
WebFOCUS |