Zwischenzeitliche Report-Ergebnisse speichern und abrufen

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.


Nach oben

x
Daten ablegen

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.



x
Syntax: Daten in einer Datei ablegen

Die Syntax für das Speichern jeder beliebigen TAG-, RECAP- oder DATA-Zeile ist:

POST [TO ddname]

Hierbei gilt:

ddname

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.



Beispiel: Zeilen in einer Arbeitsdatei ablegen

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.

Report



x
Syntax: Daten aus einer Arbeitsdatei aufrufen

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:

ddname

Ist der logische Name der Arbeitsdatei, aus der Sie Daten abrufen.

id

Ist das Label, das der abgelegten Datenzeile in der Arbeitsdatei zugewiesen wurde, die nun aufgerufen wird.

Label

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.



Beispiel: Daten aus einer Arbeitsdatei aufrufen

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.

Report

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