Auf Spalten in Berechnungen verweisen

In diesem Abschnitt:

Ein FML-Report kann sowohl auf explizite Spalten als auch auf explizite Zeilen verweisen. Sie können auf Spalten mit Folgendem verweisen:


Nach oben

Beispiel: Spaltendeklarationen in RECAP-Formeln anwenden

Die folgende Anfrage erstellt eine FML-Matrix mit vier Zeilen und drei Datenspalten.

DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
 
TABLE FILE LEDGER
SUM CUR_YR AS 'CURRENT,YEAR'
   LAST_YR AS 'LAST,YEAR'
COMPUTE CHANGE/I5C = CUR_YR - LAST_YR;
FOR ACCOUNT
1010 AS 'CASH ON HAND'                  OVER
1020 AS 'DEMAND DEPOSITS'               OVER
1030 AS 'TIME DEPOSITS'                 OVER
BAR                                     OVER 
RECAP TOTCASH/I5C = R1 + R2 + R3; AS 'TOTAL CASH' 
END

Sowohl auf die Spalten im Report als auch auf die Zellen der Matrix kann in einem anderen FML-Report verwiesen werden.

Die Ausgabe wird im folgenden Bild illustriert.

Report

Beispielsweise können Sie den Wert 6.499 in einem anderen FML-Report verwenden, indem Sie auf Spalte 2, Zeile 3 verweisen. Weitere Informationen finden Sie unter Auf Zellen in Berechnungen verweisen.


Nach oben

x
Auf Spaltennummern in Berechnungen verweisen

Sie können eine Berechnung für eine Spalte oder für eine bestimmte Spaltengruppe durchführen. Geben Sie die Spaltennummer in Klammern nach dem Labelnamen an, um Spalten zu identifizieren.



Beispiel: Auf Spaltennummern in einer RECAP-Formel verweisen
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
 
TABLE FILE LEDGER
SUM CUR_YR AS 'CURRENT,YEAR'
LAST_YR AS 'LAST,YEAR'
FOR ACCOUNT
1010 AS 'CASH ON HAND'                             OVER
1020 AS 'DEMAND DEPOSITS'                          OVER
1030 AS 'TIME DEPOSITS'                            OVER
BAR                                                OVER
RECAP TOTCASH/I5C = R1 + R2 + R3; AS 'TOTAL CASH'  OVER
" "                                                OVER 
RECAP GROCASH(2)/F5.2 = 100*TOTCASH(1)/TOTCASH(2) - 100; 
AS 'CASH GROWTH(%)'
END

Beachten Sie Folgendes in der zweiten RECAP-Formel:

Der RECAP-Wert wird nur für die angegebene Spalte berechnet.

Die Ausgabe wird im folgenden Bild illustriert.

Report

Nachdem der Datenabruf beendet ist, wird eine einzelne Spalte auf einmal berechnet und mehrere Spalten nacheinander.


Nach oben

x
Auf zusammenhängende Spalten in Berechnungen verweisen

Wenn innerhalb eines RECAP mehrere zusammenhängende Spalten benötigt werden, können Sie die erste und die letzte Spaltennummer mit Komma trennen. Beispielsweise gibt DIFFERENCE (2,5) an, dass Sie die Ergebnisse für die Spalten 2 bis 5 berechnen möchten.



Beispiel: Recap bei zusammenhängenden Spalten

In diesem Beispiel tritt die RECAP-Berechnung für ATOT nur für die Spalten 2 und 3 auf, wie es in der Anfrage angegeben wurde. Für die Spalte 1 wird keine Berechnung durchgeführt.

DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
NEXT_YR/I5C=1.13*CUR_YR + 222;
END
 
TABLE FILE LEDGER
SUM NEXT_YR CUR_YR LAST_YR
FOR ACCOUNT
10$$ AS 'CASH'                      OVER
1100 AS 'ACCOUNTS RECEIVABLE'       OVER
1200 AS 'INVENTORY'                 OVER
BAR                                 OVER 
RECAP ATOT(2,3)/I5C = R1 + R2 + R3; 
AS 'ASSETS--ACTUAL'
END

Die Ausgabe wird im folgenden Bild illustriert.

Report


Nach oben

x
Auf Spaltenadressen in Berechnungen verweisen

Vorgehensweise:

Wenn Sie nicht für jede einzelne Spalte sondern für jede zweite oder dritte Spalte eine Berechnung benötigen, können Sie dafür einen Faktor oder eine Spaltenadresse angeben. Spaltenadressierung ist besonders dann nützlich, wenn in allen Werten einer Spaltensortierung mehrere Datenfelder angezeigt werden.



x
Syntax: Spaltenadressierung in einer RECAP-Formel verwenden

Die linke Seite der Formel ist:

value(s,e,i)[/format]=

Hierbei gilt:

Wert

Ist der Name, den Sie dem Ergebnis der RECAP-Berechnung zuweisen.

s

Ist die Anfangsspalte.

e

Ist die Endspalte (Sie können * angeben, um alle Spalten zu kennzeichnen).

i

Ist der Inkrementfaktor.

Format

Ist das USAGE-Format des berechneten Wertes. Der Defaultwert ist das Format der ursprünglichen Spalte.



Beispiel: Spaltenadressierung in einer RECAP-Formel anwenden

In der folgenden Anweisung gibt es zwei Spalten für jeden Monat:

SUM ACTUAL AND FORECAST ACROSS MONTH

Falls Sie eine Berechnung nur für die ACTUAL-Daten durchführen möchten, steuern Sie die Platzierung der Ergebnisse über ein RECAP im Formular:

RECAP calcname(1,*,2)=expression;

Das Sternchen (*) bedeutet, dass Sie den RECAP für ungerade Spaltennummern (von Spalte 1 an mit einem Inkrement von 2) fortsetzen möchten.


Nach oben

x
Auf relative Spaltenadressen in Berechnungen verweisen

Eine Berechnung kann eine bestimmte Spalte als Basisspalte verwenden und auf alle anderen Spalten über deren Position in Bezug auf diese Spalte verweisen. Die Spalte links von der Basisspalte ist relativ zur Basisspalte -1 platziert. Die Spalte rechts von der Basisspalte ist relativ zu dieser +1 platziert. Beispiel,

COMP=FIX(*)-FIX(*-1);

auf Änderungen in der Anlage zwischen zwei Zeiträumen verweisen. Der Verweis auf COMP=FIX(*) entspricht COMP=FIX.

Wenn Sie auf eine vorherige Spalte verweisen, muss die Spalte schon vorher abgerufen worden sein, ansonsten ist ihr Wert Null.


Nach oben

x
Verhältnismäßige Spaltenadressierung in einer RECAP-Formel anwenden

Dieses Beispiel berechnet die Veränderung in Bargeld (CHGCASH) für die Spalten 1 und 2.

DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
NEXT_YR/I5C=1.13*CUR_YR + 222;
END
 
TABLE FILE LEDGER
SUM NEXT_YR CUR_YR LAST_YR
FOR ACCOUNT
10$$ AS 'TOTAL CASH' LABEL TOTCASH           OVER
" "                                          OVER 
RECAP CHGCASH(1,2)/I5SC = TOTCASH(*) - TOTCASH(*+1); AS 'CHANGE IN CASH' 
END

Die Ausgabe wird im folgenden Bild illustriert.

Report


Nach oben

x
Die Erstellung von Spaltenverweisnummern steuern

Vorgehensweise:

Die Spaltennotation weist jeder Spalte in der internen Matrix, die für eine Reportanfrage erstellt wurde, eine sequentielle Spaltennummer zu. Wenn Sie die Erstellung von Spaltenverweisnummern für die Spalten steuern möchten, die in Ihrem Report verwendet werden, verwenden Sie den CNOTATION-Befehl für die Spaltennotation.

Da sich Spaltennummern auf die Spalten in der internen Matrix beziehen, werden Sie zugewiesen, nachdem die Daten vollständig abgerufen und summiert wurden. Spalten, die in einem Report erstellt und angezeigt wurden, sind in der internen Matrix gespeichert und Spalten, die nicht in einem Report angezeigt werden, können auch in der internen Matrix erzeugt und gespeichert werden. Spalten, die in der internen Matrix gespeichert werden, enhalten berechnete Werte, neu formatierte Feldwerte, BY-Felder, Felder mit der NOPRINT-Option und bestimmte RECAP-Berechnungen wie z. B. FORECAST und REGRESS. Jeder zweiten Spalte in der internen Matrix wird standardmäßig eine Spaltennummer zugewiesen, was bedeutet, dass Sie alle intern erzeugten Spalten ausweisen müssen, wenn Sie auf den entsprechenden Spaltenwert in Ihrer Anfrage verweisen möchten.

Sie können die Default-Zuweisung von Spaltenverweisnummer ändern, indem Sie den SET CNOTATION=PRINTONLY-Befehl verwenden, der nur Spalten Nummern zuweist, die in der Reportausgabe angezeigt werden. Sie können die Spaltennotation in COMPUTE- und RECAP-Befehlen verwenden, um auf diese Spalten in Ihrer Anfrage zu verweisen.



x
Syntax: Die Erstellung von Spaltenverweisnummern steuern
SET CNOTATION={ALL|PRINTONLY|EXPLICIT}

Hierbei gilt:

ALL

Weisen Sie jeder Spalte in der internen Matrix Spaltenverweisnummern zu. ALL ist der Defaultwert.

PRINTONLY

Weist nur den Spalten Spaltenverweisnummern zu, die in der Reportausgabe angezeigt werden.

EXPLICIT

Weist allen Feldern, auf die in der Anfrage verwiesen wird, Spaltenverweisnummern zu, unabhängig davon, ob diese angezeigt werden oder nicht.

Hinweis: CNOTATION wird in ON TABLE-Phrasen nicht unterstützt.


Nach oben

x
Auf Spaltenwerte in Berechnungen verweisen

Wenn ein Report mit einer ACROSS-Phrase sortiert wird, werden alle abgerufenen Werte in den entsprechenden Spalten ausgerichtet. Jede Spalte hat einen Titel, der aus einem Wert des ACROSS-Feldes besteht. Die gesamte Datenspalte kann direkt über diesen Wert in einer RECAP-Berechnung adressiert werden.



Beispiel: Auf eine Spalte über deren Wert in einer RECAP-Formel verweisen

Die folgende Anfrage verwendet einen Faktor, der vom Wert des ACROSS-Feldes (YEAR) abhängt, um die Lagerkosten für jedes Jahr zu berechnen. Sie berechnet danach den Gewinn, indem alle Anlagen summiert werden und dann die Lagerkosten für jedes Jahr abgezogen werden.

TABLE FILE LEDGER
SUM AMOUNT ACROSS YEAR
FOR ACCOUNT
10$$ AS 'CASH' LABEL CASH                         OVER
1100 AS 'ACCOUNTS RECEIVABLE' LABEL RECEIVE       OVER
BAR                                               OVER
1200 AS 'INVENTORY VALUE' LABEL INVENT            OVER 
RECAP INVENTORY_FACTOR/F5.2 = IF YEAR LT '1986' 
   THEN 1.1 ELSE 1.25; AS 'INVENTORY COST FACTOR' OVER 
RECAP INVENTORY_COST = INVENTORY_FACTOR * INVENT;
   AS 'INVENTORY COST'                            OVER
BAR                                               OVER
RECAP PROFIT = CASH + RECEIVE - INVENTORY_COST;
END

Die Ausgabe wird im folgenden Bild illustriert.

Report


WebFOCUS