Reports aus einer Hierarchie dynamisch erzeugen

In diesem Abschnitt:

Hierarchische Verhältnisse zwischen Feldern können in der Masterdatei definiert werden und automatisch mit der Financial Modeling Language (FML) angezeigt werden. Übergeordnete und untergeordnete Felder müssen Datenwerte teilen und das Verhältnis zwischen ihnen sollte hierarchisch sein. Die Formate der über- und untergeordneten Felder müssen beide entweder numerisch oder alphanumerisch sein.

Nehmen wir beispielsweise Folgendes an:

Wenn Sie diese Felder untersuchen, können Sie ein gesamtes Organisationsdiagramm oder ein Kontenstrukturdiagramm erstellen. Um dieses Diagramm jedoch in einem traditionellen FML-Report zu drucken, müssen Sie die Angestellten-IDs oder die Kontonummern in der Anfragesyntax in der Reihenfolge auflisten, in der sie im Report angezeigt werden sollen. Falls ein Angestellter oder ein Konto hinzugefügt, entfernt oder verschoben wird, müssen Sie die Reportanfrage verändern, um diese Änderung in der Organisationsstruktur wiederzuspiegeln. Beispiel:

TABLE FILE EMPLOYEE
PRINT DEPARTMENT CURR_JOBCODE
FOR EMP_ID
999999999   OVER
222222222   OVER
 .
 .
 .

Im Gegensatz dazu können Sie in FML-Hierarchien hierarchische Verhältnisse zwischen zwei Feldern in der Masterdatei definieren und diese Information in den Speicher laden. Die FML-Anfrage kann dann die Zeilen dynamsich bilden, die dieses Verhältnis wiederspiegeln, und sie, an beliebiger Stelle in der Hierarchie beginnend, im Report anzeigen. In diesem Beispiel ist EMP_ID das Hierarchiefeld.


Nach oben

x
Anforderungen für FML-Hierarchien
  1. Verwenden Sie die Attribute PROPERTY=PARENT_OF und REFERENCE=hierarchyfld, um das hierarchische Verhältnis zwischen zwei Feldern zu definieren. Weitere Informationen finden Sie im Daten mit der WebFOCUS-Sprache beschreiben .

    Die Hierachie muss in den Speicher geladen werden. Diese geladene Hierarchie wird als Diagramm bezeichnet. Falls die Hierarchie in der Masterdatei definiert wurde und in der FML-Anfrage auf sie verwiesen wird, wird sie automatisch geladen. Falls Sie eine Hierarchie verwenden möchten, die in einer Masterdatei definiert wurde, auf die in der FML-Anfrage nicht verwiesen wird und die auch nicht mit der Masterdatei, auf die in der FML-Anfrage verwiesen wird, verbunden wurde, geben Sie den LOAD CHART-Befehl aus, bevor Sie die FML-Anfrage ausgeben.

    Es können maximal 16 Diagramme geladen werden. Diagramme werden automatisch gelöscht, wenn die Session beendet wird.

  2. In der FOR-Phrase der FML-Anfrage. Verwenden Sie die GET/WITH CHILDREN- oder ADD-Phrase, um die hierarchischen Daten, beginnend an einer bestimmten Stelle der Hierarchie, abzurufen.

Um FML-Hierarchien zu verwenden, muss das FOR-Feld Folgendes sein:

Anders gesagt muss sich das FOR-Feld in einer Abhängigkeits-Hierachie befinden oder mit einer solchen verknüpft sein. In letzterem Fall können Transaktionsdaten, die das Hierarchiefeld enthalten, mit einer separaten Datenquelle, die die Hierarchiedefinition enthält, verknüpft werden.

Wie bei jeder FML-Anfrage wird eine Tag-Zeile angezeigt, selbst wenn für die Tag-Werte in der Datei keine Daten gefunden wurden, in der ein Punkt (.) die fehlenden Daten darstellt. Sie können diese Konvention überschreiben, indem Sie der Definition der Tag-Zeile die WHEN EXISTS-Phrase hinzufügen. Somit hängt die Anzeige einer Zeile davon ab, ob Daten für den Tag vorhanden sind.



Beispiel: Eine Hierarchie in einer Masterdatei definieren

Die CENTGL-Masterdatei enthält eine Kontendiagramm-Hierarchie. Das Feld GL_ACCOUNT_PARENT ist das übergeordete Feld in der Hierarchie. Das Feld GL_ACCOUNT ist das Hierarchiefeld. Das Feld GL_ACCOUNT_CAPTION kann als Beschreibung für das Hierarchiefeld verwendet werden.

FILE=CENTGL     ,SUFFIX=FOC
SEGNAME=ACCOUNTS,SEGTYPE=S01
FIELDNAME=GL_ACCOUNT,           ALIAS=GLACCT,  FORMAT=A7,
          TITLE='Ledger,Account', FIELDTYPE=I, $
FIELDNAME=GL_ACCOUNT_PARENT,    ALIAS=GLPAR,   FORMAT=A7,
          TITLE=Parent,
          PROPERTY=PARENT_OF, REFERENCE=GL_ACCOUNT, $
FIELDNAME=GL_ACCOUNT_TYPE,      ALIAS=GLTYPE,  FORMAT=A1,
          TITLE=Type,$
FIELDNAME=GL_ROLLUP_OP,         ALIAS=GLROLL,  FORMAT=A1,
          TITLE=Op, $
FIELDNAME=GL_ACCOUNT_LEVEL,     ALIAS=GLLEVEL, FORMAT=I3,
          TITLE=Lev, $
FIELDNAME=GL_ACCOUNT_CAPTION,   ALIAS=GLCAP,   FORMAT=A30,
          TITLE=Caption,
          PROPERTY=CAPTION, REFERENCE=GL_ACCOUNT, $
FIELDNAME=SYS_ACCOUNT,          ALIAS=ALINE,   FORMAT=A6,
          TITLE='System,Account,Line', MISSING=ON, $

Die CENTSYSF-Datenquelle enthält detaillierte finanzielle Daten. Hierbei handelt es sich um nicht konsolidierte finanzielle Daten eines fiktiven Unternehmens namens CenturyCorp. Diese sind separat von der CENTGL-Datenbank, so, als würden sie aus einem externen Buchhaltungssystem stammen. Sie verwenden ein anderes Kontopositionssystem (SYS_ACCOUNT), das mit dem SYS_ACCOUNT-Feld in CENTGL verbunden werden kann. Daten verwenden natürliche Zeichen (Ausgaben sind positiv, Einnahmen negativ).

FILE=CENTSYSF     ,SUFFIX=FOC
SEGNAME=RAWDATA   ,SEGTYPE=S2
FIELDNAME=SYS_ACCOUNT   ,  ,A6       , FIELDTYPE=I,
          TITLE='System,Account,Line', $
FIELDNAME=PERIOD        ,  ,YYM      , FIELDTYPE=I, $
FIELDNAME=NAT_AMOUNT    ,  ,D10.0    , TITLE='Month,Actual', $
FIELDNAME=NAT_BUDGET    ,  ,D10.0    , TITLE='Month,Budget', $
FIELDNAME=NAT_YTDAMT    ,  ,D12.0    , TITLE='YTD,Actual', $

Nach oben

x
Eine FML-Hierarchie anzeigen

Vorgehensweise:

Die Befehle GET CHILDREN und WITH CHILDREN rufen hierarchische Daten dynamisch ab und zeigen sie im FML-Report an. GET CHILDREN zeigt nur die untergeordneten Elemente an, und nicht den übergeordneten Wert, auf den im Befehl verwiesen wird. WITH CHILDREN zeigt das übergeordnete Element und dann das untergeordnete Element an.



x
Syntax: Eine FML-Hierarchie anzeigen
TABLE FILE filename{PRINT|SUM} ...
FOR hierarchyfld 
parentvalue {GET|WITH} CHILD[REN] [n|ALL]
 [AS CAPTION|'text'] [LABEL label]
.
.
.
END

Hierbei gilt:

filename

Ist der Name der Datei, die in der FML-Anfrage verwendet werden soll. Falls die Hierachie für diese Anfrage nicht automatisch geladen werden kann, muss sie zuvor mit dem LOAD CHART-Befehl geladen worden sein.

hierarchyfld

Ist der Name des Hierarchiefeldes. Falls die Anfrage auf eine verbundene Struktur verweist, muss der Name der Feldname aus der Hostdatei sein. Der Aliasname wird nicht unterstützt.

parentvalue

Ist der übergeordnete Wert, für den die untergeordneten Elemente abgerufen werden sollen.

GET CHILDREN

Zeigt die Hierarchie an, beginnend mit dem ersten untergeordneten Element des angegebenen parentvalue. Hierbei wird das übergeordnete Element nicht angezeigt. (Dies entspricht der FML-Syntax CHILD1 OVER CHILD2 OVER ...)

WITH CHILDREN

Zeigt die Hierarchie an, beginnend mit dem angegebenen parentvalue. Das übergeordnete Element ist in der Anzeige enthalten. (Dies entspricht der FML-Syntax parentvalue OVER CHILD1 OVER CHILD2 OVER ...).

n|ALL

Ist eine positive ganze Zahl zwischen 1 und 99, die die Anzahl der Ebenen in der Hierarchie, die angezeigt werden sollen, angibt. Falls eine Zahl, die größer als 99 ist, angegeben wurde, wird eine Warnmeldung angezeigt und n auf 99 gestellt. Der Defaultwert ist 1. Somit werden, wenn n nicht angegeben wird, nur direkt untergeordnete Elemente angezeigt. GET oder WITH CHILDREN 2 zeigt direkt untergeordneten Element und diesen direkt untergeordnete Elemente an. GET oder WITH CHILDREN 99 zeigt untergeordnete Elemente bis zu 99 Ebenen an. ALL ist ein Synonym für 99. Jede untergeordnete Instanz wird über die darauffolgende gedruckt. Aufeinanderfolgende Ebenen des Hierarchiefeldes werden um jeweils zwei Leerstellen eingerückt.

CAPTION

Gibt an, dass die Beschriftungswerte, die angezeigt werden sollen, aus dem Feld stammen sollen, das in der Masterdatei als CAPTION definiert ist.

Beachten Sie, dass die AS CAPTION-Phrase für Tag-Zeilen unterstützt wird, einschließlich der Tag-Zeilen, die nicht die GET/WITH CHILDREN- oder ADD-Syntax verwenden. Es muss jedoch die Hierarchie definiert werden (durch Angabe des PARENT_OF-Attributs), um die Beschreibungswerte zu laden und anzuzeigen. Falls die Hierarchie nicht definiert wurde, wird die AS CAPTION-Phrase ignoriert.

'Text'

Ist eine Textfolge, die als Zeilentitel für die Hierarchie-Feldwerte verwendet werden soll. Das CAPTION-Feld, das in der Masterdatei definiert wurde, wird in der Reportausgabe nicht als Beschreibung verwendet.

Label

Ist ein explizites Zeilenlabel. Alle erzeugten Zeilen werden mit dem angegebenen Labeltext beschriftet.

Hinweis: Die Hierarchie wird nach dem übergeordneten Feld sortiert und, innerhalb des übergeordneten Feldes, nach dem Hierarchiefeld.

Informationen zu den Funktionen FMLFOR, FMLLIST, FMLCAP und FMLINFO, die die Tag-Werte und Beschreibungen zurückgeben, die in einer FML-Anfrage verwendet werden, finden Sie im Handbuch Funktionen verwenden .



Beispiel: Eine FML-Hierarchie anzeigen

Die folgende Anfrage zeigt zwei Ebenen von Kontonummern an, beginnend mit dem Konto 3000:

SET BLANKINDENT=ON
TABLE FILE CENTGL
PRINT GL_ACCOUNT_PARENT
FOR GL_ACCOUNT 
3000 WITH CHILDREN 2 
END

Die Ausgabe wird wie folgt angezeigt.

             Parent
             ------
3000         1000
  3100       3000
    3110     3100
    3120     3100
    3130     3100
    3140     3100
    3200     3000
    3300     3200
    3400     3200
    3500     3200
    3600     3200
    3700     3200
    3800     3200
    3900     3200

Hinweis: Wenn die Anfrage GET CHILDREN anstatt WITH CHILDREN vorgibt, wird die Zeile für den übergeordneten Wert (3000) in der Reportausgabe nicht angezeigt.



Beispiel: Eine FML-Hierarchie mit Beschriftungen anzeigen

Die folgende Anfrage zeigt zwei Ebenen einer Kontodiagramm-Hierarchie, beginnend mit dem Konto 1000 (dem Anfang der Hierarchie) und zeigt die Beschriftungs-Feldwerte anstelle der Kontonummern.

SET BLANKINDENT=ON 
TABLE FILE CENTGL
PRINT GL_ACCOUNT_PARENT
FOR GL_ACCOUNT 
1000 WITH CHILDREN 2 AS CAPTION 
END

Die Ausgabe wird wie folgt angezeigt.

                                    Parent
                                    ------
Profit Before Tax                         
  Gross Margin                      1000  
    Sales Revenue                   2000  
    Cost Of Goods Sold              2000  
  Total Operating Expenses          1000  
    Selling Expenses                3000  
    General + Admin Expenses        3000  
  Total R+D Costs                   1000  
    Salaries                        5000  
    Misc. Equipment                 5000  

Hinweis: Wenn die Anfrage GET CHILDREN anstatt WITH CHILDREN vorgibt, wird die Zeile für den übergeordneten Wert (1000, Gewinn vor Steuern) in der Reportausgabe nicht angezeigt.


Nach oben

x
Eine FML-Hierarchie konsolidieren

Vorgehensweise:

Der ADD-Befehl konsolidiert mehrere Ebenen der Hierarchie in einer Zeile der FML-Reportausgabe. Sie können ADD alleine verwenden oder zusammen mit GET CHILDREN oder WITH CHILDREN. Beachten Sie, dass ADD mit Anfragen, die den SUM-Befehl enthalten, verwendet werden kann. ADD kann auch mit detaillierten Daten verwendet werden, aber nicht mit konsolidierten Daten.

Wenn ADD allein verwendet wird, werden übergeordnete und untergeordneten Elemente auf einer Zeile in der Reportausgabe aggregiert, wobei die numerischen Datenwerte in der Zeile summiert werden. Dies entspricht der FML-Syntax parentvalue oder CHILD1 OR CHILD2 OR ...

Wenn ADD zusammen mit GET CHILDREN verwendet wird, wird eine Zeile für jedes untergeordnete Element des angegebenen übergeordneten Elements angezeigt. Jede Zeile ist eine Summe dieses untergeordneten Elements und aller ihm untergeordneten Elemente. Sie können die Anzahl der Ebenen untergeordneter Elemente, die angezeigt werden sollen, angeben (wodurch die Anzahl der Zeilen, die in der Reportausgabe erzeugt werden, bestimmt wird), sowie die Tiefe der Summe unter jedem untergeordneten Element. Standardmäßig haben nur direkt untergeordnete Elemente eine Zeile in der Reportausgabe, und die Summe jedes untergeordneten Elements enthält alle ihm untergeordneten Elemente.

Wenn ADD zusammen mit WITH CHILDREN verwendet wird, wird zuerst eine Zeile in der Reportausgabe angezeigt, die aus der Summe des übergeordneten und allen ihm untergeordneten Elementen besteht. Dann werden zusätzliche Zeilen angezeigt, identisch mit denen, die durch GET CHILDREN ADD angezeigt werden.

Um einen Datensatz in mehr als einer Zeile in einem FML-Report zu verwenden (z. B., um sowohl die Detail- als auch die Summenzeile anzuzeigen, oder, um detaillierte Daten auf mehreren Ebenen zu konsolidieren), ist die folgende Einstellung erforderlich:

SET FORMULTIPLE=ON


x
Syntax: Eine Summenzeile für eine FML-Hierachie erstellen
TABLE FILE filenameSUM ...
FOR hierarchyfld 
parentvalue ADD [n|ALL]
 [AS CAPTION|'text'] [LABEL label]
.
.
.
END

Hierbei gilt:

filename

Ist der Name der Datei, die in der FML-Anfrage verwendet werden soll. Falls die Hierachie für diese Anfrage nicht automatisch geladen werden kann, muss sie zuvor mit dem LOAD CHART-Befehl geladen worden sein.

hierarchyfld

Ist der Name des Hierarchiefeldes. Falls die Anfrage auf eine verbundene Struktur verweist, muss der Name der Feldname aus der Hostdatei sein. Der Aliasname wird nicht unterstützt.

parentvalue

Ist der übergeordnete Wert, der den Anfangspunkt der Aggregation in der Hierarchie bestimmt.

ADD

Zeigt das übergeordnete Element und n Ebenen untergeordneter Elemente in einer Zeile an, und summiert die numerischen Datenwerte, die in der Zeile angezeigt werden. Dies entspricht der FML-Syntax parentvalue oder CHILD1 OR CHILD2 OR CHILD3 und mehr, falls zutreffend.

Um nur die Summe der untergeordneten Elemente anzuzeigen, müssen Sie sowohl die übergeordnete Zeile als auch die Summenzeile anzeigen und ein RECAP verwenden, um die übergeordnete Zeile von der Summe abzuziehen. Beispiel:

FOR ... 
parentvalue                 OVER 
parentvalue ADD 1           OVER
RECAP CHILDSUM = R2-R1;
n|ALL

Ist eine positive ganze Zahl zwischen 1 und 99, die die Anzahl der Ebenen in der Hierarchie angibt, die aggregiert werden sollen. ALL ist der Defaultwert. Somit werden, wenn n nicht angegeben wird, alle untergeordneten Elemente in die Summe aufgenommen. Wenn n 1 ist, werden nur direkt untergeordnete Elemente aufgenommen. Wenn n 2 ist, werden direkt untergeordnete Elemente und ihnen direkt untergeordnete Elemente aufgenommen. ADD 99 enthält bis zu 99 Ebenen untergeordneter Elemente. ALL ist ein Synonym für 99.

CAPTION

Gibt an, dass die Beschriftung des übergeordneten Werts für die gesamte Zeile angezeigt wird.

Beachten Sie, dass die AS CAPTION-Phrase für alle Tag-Zeilen unterstützt wird, einschließlich der Zeilen, die die GET CHILDREN- oder ADD-Syntax nicht verwenden. Es muss jedoch die Hierarchie definiert werden (durch Angabe des PARENT_OF-Attributs), um die Beschreibungswerte zu laden und anzuzeigen. Falls die Hierarchie nicht definiert wurde, wird die AS CAPTION-Phrase ignoriert.

'text'

Ist eine Textfolge, die als Zeilentitel für die Gesamtzeile verwendet werden soll. Das CAPTION-Feld, das in der Masterdatei definiert wurde, wird in der Reportausgabe nicht als Beschreibung verwendet.

Label

Ist ein explizites Zeilenlabel. Alle erzeugten Zeilen werden mit dem angegebenen Labeltext beschriftet.



Beispiel: Eine Summenzeile für eine FML-Hierachie anzeigen

Die CENTSYSF-Datenquelle enthält detaillierte finanzielle Daten. Um die Kontenhierarchie in der CENTGL-Datenquelle mit diesen finanziellen Daten zu verwenden, werden die zwei Datenquellen verbunden. Die Daten in CENTSYSF werden mit natürlichen Zeichen gespeichert, was bedeutet, dass Einnahmen und Verbindlichkeiten als negative Zahlen gespeichert werden. Der Teil der Hierarchie, der in der Anfrage verwendet wird, enthält nur positive Daten.

Beachten Sie, dass der Join nicht eindeutig sein muss, da die Hierachie im Hostsegment definiert wird.

Zuerst zeigt der WITH CHILDREN-Befehl die Zeilen der Hierachie an, beginnend mit dem Konto Absatzkosten (3100). Beachten Sie, dass nur Konten ohne untergeordnete Elemente in dieser detaillierten Datenquelle aufgefüllt werden. Der ADD-Befehlt erstellt dann eine Zeile, die die Summe des Kontos 3100 und aller ihm untergeordneten Elemente ist.

SET BLANKINDENT=ON 
SET FORMULTIPLE=ON
JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF
TABLE FILE CENTGL
SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0
FOR GL_ACCOUNT 
3100 WITH CHILDREN ALL AS CAPTION OVER 
BAR                               OVER 
3100 ADD AS CAPTION 
IF PERIOD EQ '2002/03'
END

Die Ausgabe wird wie folgt angezeigt.

Report



x
Syntax: FML-Hierarchiedaten bis zu einer beliebigen Ebene und Tiefe konsoldieren
TABLE FILE filename 
SUM ...
FOR hierarchyfld 
parentvalue {GET|WITH} CHILD[REN] [n|ALL] ADD [m|ALL]
 [AS CAPTION|'text'] [LABEL label]
.
.
.
END

Hierbei gilt:

filename

Ist der Name der Datei, die in der FML-Anfrage verwendet wird. Falls die Hierachie für diese Anfrage nicht automatisch geladen werden kann, muss sie zuvor mit dem LOAD CHART-Befehl geladen worden sein.

hierarchyfld

Ist der Name des Hierarchiefeldes. Falls die Anfrage auf eine verbundene Struktur verweist, muss der Name der Feldname aus der Hostdatei sein. Der Aliasname wird nicht unterstützt.

parentvalue

Ist der übergeordnete Wert, der den Anfangspunkt der Aggregation in der Hierarchie bestimmt.

GET|WITH

GET legt fest, dass die erste Zeile, die im Report erzeugt wird, die konsolidierte Zeile für das erste untergeordnete Element des übergeordneten Werts ist. WITH legt fest, dass die erste Zeile, die im Report erzeugt wird, die konsolidierte Zeile für den übergeordneten Wert ist, gefolgt von den konsolidierten Zeilen für jedes ihm untergeordnete Element, bis zu der durch n angegebenen Ebene.

n|ALL

Ist eine positive ganze Zahl zwischen 1 und 99, die die Anzahl der Ebenen untergeordneter Elemente, die angezeigt werden sollen, angibt. Die Ausgabezeile für jedes untergeordnete Element ist die Summe des untergeordneten Elements und aller ihm untergeordneten Elemente bis zu der Tiefe, die für die ADD-Option angegeben wurde. Der Defaultwert ist 1. Somit hat, wenn n nicht angegeben wird, jedes direkt untergeordnete Element eine Zeile im Report. Wenn n 2 ist, haben sowohl direkt untergeordnete Element als auch die ihnen direkt untergeordneten Elemente eine Zeile in der Reportausgabe. ALL ist ein Synonym für 99.

ADD

Summiert die Hierarchie bis zur über m angegebenen Tiefe für jede Zeile, die mit den Befehlen GET oder WITH CHILDREN erzeugt wurde.

mALL

Ist eine positive ganze Zahl zwischen 1 und 99, die die Anzahl der Ebenen untergeordneter Elemente, die in jeder Zeile des Reports konsolidiert werden sollen, angibt. Falls eine Zahl, die größer als 99 ist, angegeben wurde, wird eine Warnmeldung angezeigt und m auf 99 gestellt. Der Defaultwert ist ALL. Somit summiert, wenn m nicht angegeben wird, die konsolidierte Zeile alle untergeordneten Elemente. Wenn m 2 ist, werden nur direkt untergeordnete Elemente und die ihnen direkt untergeordneten Elemente für jede Zeile in der Reportausgabe konsolidiert. ADD 99 aggregiert untergeordnete Elemente bis zu 99 Ebenen. ALL ist ein Synonym für 99.

CAPTION

Gibt an, dass die Beschriftung des übergeordneten Werts für die gesamte Zeile angezeigt wird.

Beachten Sie, dass die AS CAPTION-Phrase für alle Tag-Zeilen unterstützt wird, einschließlich der Zeilen, die die GET CHILDREN- oder ADD-Syntax nicht verwenden. Es muss jedoch die Hierarchie definiert werden (durch Angabe des PARENT_OF-Attributs), um die Beschreibungswerte zu laden und anzuzeigen. Falls die Hierarchie nicht definiert wurde, wird die AS CAPTION-Phrase ignoriert.

'text'

Ist eine Textfolge, die als Zeilentitel für die Gesamtzeile verwendet werden soll. Das CAPTION-Feld, das in der Masterdatei definiert wurde, wird in der Reportausgabe nicht als Beschreibung verwendet.

Label

Ist ein explizites Zeilenlabel. Alle erzeugten Zeilen werden mit dem angegebenen Labeltext beschriftet.



Beispiel: FML-Hierarchiedaten konsolidieren

In der folgenden Anfrage zeigt der erste WITH CHILD-Befehl die Detaildaten für die Hierarchie an, beginnend mit dem Konto 3100. Der nächste WITH CHILD-Befehl erstellt eine konsolidierte Zeile für das übergeordnete Konto (3100) und für jedes direkt untergeordnete Element.

SET BLANKINDENT=ONSET FORMULTIPLE=ON
JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF
TABLE FILE CENTGL
SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0
FOR GL_ACCOUNT 
3100 WITH CHILDREN ALL AS CAPTION      OVER 
" "                                    OVER
BAR AS =                               OVER
" "                                    OVER 
3100 WITH CHILDREN ADD AS CAPTION 
IF PERIOD EQ '2002/03'
END

Beachten Sie, dass der Join nicht eindeutig sein muss, da die Hierachie im Hostsegment definiert wird.

In der folgenden Ausgabe zeigt der obere Teil die detaillierten Daten an. Der untere Teil zeigt die konsolidierten Daten an. Im konsolidierten Teil des Reports:

Report

Wenn Sie GET CHILDREN anstelle von WITH CHILDREN verwenden, wird die jeweils oberste Zeile in allen Teilen der Ausgabe eliminiert. Die verbleibenden Zeilen bleiben gleich.

Report

Die folgende Anfrage zeigt eine konsolidierte Zeile für das Konto 2000 und für alle ihm direkt untergeordneten Elemente und diesen direkt untergeordneten Elementen an.

SET FORMULTIPLE=ON
JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF
TABLE FILE CENTGL
SUM NAT_AMOUNT/D10.0 NAT_YTDAMT/D10.0
FOR GL_ACCOUNT 
2000 WITH CHILDREN 2 ADD AS CAPTION 
IF PERIOD EQ '2002/03'
END

Die Ausgabe wird wie folgt angezeigt.

Report


Nach oben

x
Eine Hierarchie manuell laden

Vorgehensweise:

Referenz:

In den meisten Fällen wird eine Hierarchie automatisch durch die Anfrage-Syntax geladen. Wenn Sie jedoch eine in einer Masterdatei definierte Hierarchie für eine Datenquelle verwenden müssen, die mit der Hierarchiedatei nicht verbunden ist (die aber dasselbe Hierarchiefeld enthält), können Sie die Hierarchiedaten manuell über den LOAD CHART-Befehl laden.

Die Anzahl der Diagramme, die geladen werden können, ist auf den verfügbaren Speicherplatz begrenzt. Diagramme werden automatisch gelöscht, wenn die Session beendet wird.

Das Diagramm wird durch das Ausführen einer TABLE-Anfrage geladen, wodurch eine Liste mit übergeordneten Werten und den zugehörigen untergeordneten Werten erzeugt wird.

TABLE FILE chartfile 
BY parentfield BY hierarchyfield 
[SUM captionfield]
END

Das sich daraus ergebende Diagramm enthält die folgenden Informationen. Dabei können auch die zugehörigen Beschriftungen enthalten sein, abhängig davon, ob die AS CAPTION-Phrase in der Anfrage verwendet wurde.

parentfield     hierarchyfield 
-----------     -------------- 
parentvalue1    child1 
parentvalue1    child2
parentvalue2    child3 
  .
  .
  .


x
Syntax: Eine Hierarchie von einer Masterdatei laden, um diese mit einer separaten Masterdatei zu verwenden

Sie können die Hierarchiedaten manuell laden, wenn Sie eine Hierarchie, die in einer Masterdatei definiert wurde, für eine Datenquelle verwenden müssen, die mit der Hierarchiedatei nicht verbunden ist, aber die das gleiche Hierarchiefeld enthält.

Wie viele Diagramme geladen werden können hängt davon ab, wie viel Speicherplatz verfügbar ist. Diagramme werden automatisch gelöscht, wenn WebFOCUS beendet wird.

LOAD CHART chartfile[.sega].hierarchyfld 
   [FOR requestfile[[.segb].fieldb]]

Hierbei gilt:

chartfile

Ist der Name der Masterdatei, die die Hierachieinformationen enthält.

sega

Ist der Name des Segments, das das Hierarchiefeld enthält. Der Segmentname ist nur dann erforderlich, wenn ein Feld in einem anderen Segment der Struktur den gleichen Feldnamen wie das Hierarchiefeld hat.

hierarchyfld

Ist das Hierarchiefeld. Es ist erforderlich, da eine Masterdatei mehrere Hierarchien definieren kann.

FOR

Lädt eine Hierarchie, die in einer Masterdatei definiert wurde, die in der FML-Reportanfrage nicht verwendet wurde. Wenn beispielsweise die Masterdatei B die Hierarchieinformationen enthält, aber die Masterdatei A in der Anfrage verwendet wurde (und Masterdatei A und B nicht verbunden wurden), geben Sie den folgenden LOAD CHART-Befehl vor der FML-Anfrage aus:

LOAD CHART B.FLDB FOR A.FLDA
TABLE FILE A ...
requestfile

Ist der Name der Masterdatei, die in der FML-Anfrage verwendet wird.

segb

Ist der Name des Segments, das die Hierarchiefeldwerte in der Masterdatei enthält, die in der FML-Anfrage verwendet wird. Ist nicht erforderlich, wenn es denselben Namen wie sega hat.

fieldb

Ist das Feld in der Masterdatei, die in der FML-Anfrage angegeben wurde, das die Werte des Hierarchiefeldes enthält. Ist nicht erforderlich, wenn es denselben Namen wie das Hierarchiefeld hat.

Hinweis:



x
Referenz: Verwendungshinweise für FML-Hierarchien

WebFOCUS