Einen zusammengesetzten Report erstellen

In diesem Abschnitt:

Zusammengesetzte Reports kombinieren mehrere Reports in einer einzigen Datei. Dies ermöglicht es Ihnen, Reports mit Styling-Formaten (wie z. B. PDF, DHTML, PS, EXL2K oder EXL07) zu verknüpfen. Sie können auch Bilddateien einschließlich Diagramme, die als Bilder gespeichert wurden, in einen zusammengesetzten Report aufnehmen.

Es gibt drei Typen von zusammengesetzten Reports:

Während die Länge des Reports immer alle Datenzeilen enthält, die durch die Abfrage erzeugt wurden, ist die Breite des Reports begrenzt durch die Größe des definierten Komponenten-Containers. Dies bedeutet, dass Panels für zusammengesetzte Reports nicht unterstützt werden, obwohl Sie für nicht zusammengesetzte PDF-Reports unterstützt werden. Wenn bei nicht zusammengesetzten PDF-Dokumenten die Reportdaten breiter sind als die definierte Seitengröße, wird automatisch ein Panel (oder eine horizontale Überlaufseite) erzeugt. Dieses Panel-Feature wird für zusammengesetzte PDF-Dokumente nicht unterstützt, so dass jede zusammengesetzte Komponente von der Breite her in den definierten Container passen muss, damit der Report erfolgreich erstellt werden kann. Die Container-Größe ist innerhalb jedes Reporttyps definiert.

Informationen über das Erstellen von zusammengesetzten PDF-Reports mit Drillthrough-Links finden Sie unter Einen zusammengesetzten PDF-Report mit Drillthrough-Links erstellen.


Nach oben

x
Einen zusammengesetzten Layout-Report mit Document Composer-Syntax erstellen

Vorgehensweise:

Referenz:

Sie erstellen normalerweise einen zusammengesetzten Layout-Report, indem Sie die Optionen im Document Composer-Tool verwenden. Alternativ können Sie einen zusammengesetzten Layout-Report auch erstellen, indem Sie die Syntax im Texteditor-Tab im Document Composer modifizieren oder in einem beliebigen anderen Texteditor.

Hinweis: Genaueres darüber, wie Sie einen zusammengesetzten Layout-Report mit dem Document Composer-Tool erstellen, finden Sie unter Einen zusammengesetzten Layout-Report erstellen im Handbuch Zusammengesetzte Reports mit dem Document Composer erstellen.

Die Syntax für einen zusammengesetzten Layout-Report wird durch einen zusammengesetzten Layout-Block strukturiert, der alle Layout-Informationen in einen einzelnen Block platziert, der dem Report vorangestellt wird. Dieser Block beginnt mit einer COMPOUND LAYOUT-Deklaration und wird mit END beendet. Die Sprache, die er enthält, basiert auf der StyleSheet-Syntax und wird vom StyleSheet-Parser geparst.

Dies wird unterstützt mit Styling-Formaten, wie z. B. PDF, PS, DHTML, EXL2K oder EXL07.

Tipp: Genaueres über die StyleSheet-Syntax finden Sie unter Ein WebFOCUS StyleSheet erstellen und verwalten.

Der zusammengesetzte Layout-Block besteht aus SECTION-, PAGELAYOUT- und COMPONENT-Deklarationen. Die allgemeine Struktur des zusammengesetzten Syntax-Layout-Blocks ist:

COMPOUND LAYOUT PCHOLD AS filename FORMAT format 
SECTION
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
    PAGELAYOUT
      COMPONENT
      COMPONENT
    ...
  ...
END
...
COMPOUND END

Hinweis zur Zusammengesetztes Layout-Deklaration: PDF, DHTML, PowerPoint, AHTML, Excel, FLEX und APDF sind die verfügbaren Ausgabeformate für zusammengesetztes Layout. Das ausgewählte zusammengesetzte Layout-Format überschreibt alle Reportausgabeformate von den individuellen Komponenten. Der Name der Ausgabedatei kann definiert werden mit einer AS filename-Phrase im COMPOUND-Block. Wenn keiner definiert wurde, wird der Dateiname der ersten ON TABLE HOLD-Phrase im ersten Komponenten-Report entnommen.

END ist das Ende des COMPOUND LAYOUT-Blocks, wohingegen COMPOUND END das Ende des zusammengesetzten Reports ist.

Zusätzlich wird die Syntax SET COMPONENT=report(n) nach jeder Komponente hinzugefügt, gefolgt vom tatsächlichen WebFOCUS-Code, um den Report zu erzeugen. Ein Beispiel dafür, wie diese Syntax angezeigt wird, finden Sie unter Einen zusammengesetzten Layout-Report erstellen im Handbuch Zusammengesetzte Reports mit dem Document Composer erstellen.

In diesem Kapitel wird die Struktur von zusammengesetzter Layout-Block-Syntax beschrieben und es sind ein paar Beispiele enthalten.



x
Referenz: SECTION-Deklaration und -Syntax

Ein zusammengesetzter Reportabschnitt oder SECTION-Deklaration ist eine Gruppierung von Komponenten-Reports innerhalb eines zusammengesetzten Reports. Während die aktuelle Funktionalität nur Reports mit einem einzelnen Abschnitt unterstützt, wird diese Struktur verwendet, um komplexere Reports zu unterstützen. Die SECTION-Deklaration wird benötigt, wenn ein zusammengesetzter Layout-Report erstellt wird.

Die SECTION-Syntax wird angezeigt als:

SECTION=section-name, LAYOUT=ON, [MERGE=ON|OFF,]
 [UNITS=IN|CM|PTS,] [PAGESIZE=Style Sheet selections,] [ORIENTATION=PORTRAIT|LANDSCAPE,]
 [LEFTMARGIN=m,] [RIGHTMARGIN=m,]
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,] $

Hierbei gilt:

section-name
Ist der eindeutige Identifikator des Abschnitts und besteht aus bis zu 16 Zeichen.
LAYOUT=ON
Gibt an, dass der Abschnitt ein komplexes Layout verwendet.

Hinweis: LAYOUT=ON ist derzeit die einzige zutreffende Option.

MERGE={ON|OFF}
Gibt an, ob der Abschnitt koordiniert (kombiniert) ist basierend auf dem Wert des ursprünglichen BY-Feldes.

Hinweis: Der Defaultwert ist OFF.

m
Gibt die Ränder (LEFT, RIGHT, TOP, BOTTOM) in Zoll, Zentimeter oder Punkten an.

Falls die optionalen Elemente UNITS, PAGESIZE, ORIENTATION oder MARGIN in der SECTION-Deklaration vorhanden sind, überschreiben Sie die Einstellungen dieser Parameter in den Komponenten-Reports, globalen SET-Befehlen, ON TABLE SET-Befehlen und StyleSheet-Schlüsselwörtern.



x
Referenz: PAGELAYOUT-Deklaration

Eine SECTION besteht aus einer oder mehreren PAGELAYOUT-Deklarationen, die jeweils mehrere COMPONENT-Deklarationen gruppieren, die sich auf dieser spezifischen Seite des Abschnitts befinden.

Das PAGELAYOUT-Schlüsselwort klammert eine Gruppe von COMPONENT-Deklarationen ein, die folgen, bis hin zum nächsten PAGELAYOUT-Schlüsselwort oder dem Ende des Abschnitts.

Die PAGELAYOUT-Syntax wird angezeigt als:

PAGELAYOUT={n|ALL},
 [TOPMARGIN=m,] [BOTTOMMARGIN=m,]$

Hierbei gilt:

{n|ALL}
Gibt an, auf welcher Seite eines mehrseitigen Layouts die Komponenten angezeigt werden. Der Wert (n) ist entweder eine Seitenzahl im aktuellen Abschnitt oder ALL, um anzugeben, dass die Komponente auf jeder Seite des Abschnitts angezeigt wird.
  • Die PAGELAYOUT-Werte sind nummeriert, wobei mit 1 angefangen wird. Wenn beispielsweise ein zusammengesetzter Report beidseitig gedruckt wird, werden die Komponenten-Reports auf der Vorderseite als PAGELAYOUT 1 spezifiziert und die Rückseite ist PAGELAYOUT 2.

    Hinweis: Syntax ist erforderlich, selbst wenn der Report nur eine einzige Seite enthält.

    PAGELAYOUT=1, $
  • Die PAGELAYOUT=ALL-Syntax gibt eine Komponente an, die auf jeder Seite angezeigt wird. Dies ist hilfreich bei Komponenten, die Seitenkopfzeilen oder Seitenfußzeilen erzeugen.
    PAGELAYOUT=ALL, $
m
Definiert die Begrenzungen (TOP, BOTTOM) für fließende Reports in aktuellen Einheiten. Eine Beschreibung fließender Reports finden Sie unter COMPONENT-Deklaration.


x
Referenz: Masterseiten

Komponenten, die in einer Deklaration für PAGELAYOUT=ALL enthalten sind, werden auf jeder Seite der Reportausgabe angezeigt. Dies eignet sich für die Erstellung eines Designs für die zusammengesetzte Reportausgabe:



x
Referenz: COMPONENT-Deklaration

Die Reihenfolge der COMPONENT-Deklarationen im COMPOUND LAYOUT-Block muss mit der Reihenfolge übereinstimmen, in der die Komponenten-Reports ausgeführt werden, und es muss für jeden Komponenten-Report eine COMPONENT-Deklaration geben.

Es gibt zwei Komponententypen: fest und fließend. Eine feste Komponente füllt den Container auf, der durch die Dimensionsparameter auf der Seite definiert ist und, falls zusätzliche Daten vorhanden sind, laufen diese auf die nächste Seite in derselben festen Größe und derselben Position über. Die Größe und Position der Komponente mit festem Überlauf kann auf der Überlaufseite angepasst werden (unter Verwendung der Parameter OVERFLOW-POSITION und OVERFLOW-DIMENSION). In einer fließenden Komponente fließen die Daten vom Anfang der definierten Komponente bis zum unteren Seitenrand und dann erneut ab dem oberen Seitenrand der Überlaufseite, bis zum Ende der Daten. Die Startposition jedes Komponententyps wird durch den POSITION-Parameter definiert. Ob die Komponente fest oder fließend ist, wird durch den DIMENSION-Parameter bestimmt. Für eine feste Komponente gibt der DIMENSION-Parameter Größen für die Dimensionen der umgebenden Box an. Für eine fließende Komponente gibt der DIMENSION-Parameter jedoch Sternchen (* *) für die Dimensionen an.

Die COMPONENT-Syntax wird angezeigt als:

COMPONENT=component-name, TYPE=component-type,
    POSITION=(x y), DIMENSION=(xsize ysize),
    [OVERFLOW-POSITION=(x y),] [OVERFLOW-DIMENSION=(xsize ysize),] [DRILLMAP=((L1 targetreport)),]    $

Hierbei gilt:

component-name
Der Name der Komponente muss ein eindeutiger Identifikator sein und kann aus bis zu 16 Zeichen bestehen. Er bestimmt einen Komponenten-Report, der später in der Anfrage angezeigt wird (in derselben Prozedur (FOCEXEC) oder in einer aufgerufenen Prozedur) und durch SET COMPONENT=component-name-Syntax unter Verwendung desselben Namens identifiziert wird.

Hinweis: Die SET-Syntax tagged nur Reports mit Styling, die Teil eines zusammengesetzten Reports sein können, so dass sie vor Reports ohne Styling platziert werden kann, die dem Report, der benannt werden soll, vorangestellt sind. Beispielsweise Reports, die Extrahierungsdateien erzeugen.

component-type
Gibt den Komponententyp an, der festgelegt wird. Derzeit wird nur REPORT unterstützt.
POSITION=(x y)
Gibt die (x y) Koordinate auf der Seite an, wo die obere linke Ecke der Komponente platziert werden soll. Alle Koordinaten sind in den aktuellen Einheiten (Default ist Zoll) und (0 0) ist die obere linke Ecke der Seite.

Hinweis: Per Default sind Koordinaten absolute Positionen auf der Seite. Wenn x oder y ein Pluszeichen (+) oder ein Minuszeichen ( - ) vorangestellt wird, z. B. (+.25 +0), befindet sich die Koordinate in einem bestimmten Verhältnis zum linken oder oberen Seitenrand.

DIMENSION=(xsize ysize)
Gibt die Größe der umgebenden Box der Komponente an (in aktuellen UNITs).

Für eine feste Komponente müssen xsize und ysize numerische Dimensionsgrößen sein.

Für eine fließende Komponente müssen sowohl xsize als auch ysize Sternchen sein: DIMENSION = (* *).

OVERFLOW-POSITION=(x y) und OVERFLOW-DIMENSION=(xsize ysize)
Diese optionalen Elemente geben die Position und Dimension einer festen Komponente auf nachfolgenden Seiten an, wenn sie nicht in die ursprüngliche umgebende Box passt.
DRILLMAP=((L1 targetreport))
Identifiziert den Link-Identifikator und den Zielreport für einen Drillthrough-Hyperlink von diesem Report. L1 ist derzeit ein ausreichender Link-Identifikator. Weitere Informationen über Drillthrough-Reports finden Sie unter Einen zusammengesetzten PDF-Report mit Drillthrough-Links erstellen

Hinweis: Die doppelten Klammern sind erforderlich.



Beispiel: Einen zusammengesetzten Layout-Report mit Document Composer-Syntax erstellen

In diesem einfachen Beispiel, in dem die GGSALES-Masterdatei verwendet wird, gibt das MERGE-Schlüsselwort an, dass ein koordinierter zusammengesetzter Layout-Report erzeugt werden soll. Da das erste BY-Feld jeder Komponente REGION ist, wird für jeden Wert von REGION eine Seite erzeugt, wobei der erste Report (Sales) auf (1 1) positioniert ist und der zweite Report (Einheiten) auf (6.25 1).

Geben Sie die folgende Syntax in den Texteditor-Tab des Document Composers ein.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Units, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=Units
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
COMPOUND END

Die folgende Syntax ist ein Beispiel dafür, wie derselbe Report aussehen könnte, wenn sich die zusammengesetzten Reports in bereits vorhandenen Prozeduren (FOCEXECs) befinden würden, wie durch R1 und R2 angegeben.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 1), DIMENSION=(4 4), $
END
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
COMPOUND END

Die erste Seite der Ausgabe ist:



Beispiel: Ein zusammengesetztes Diagramm mit Document Composer-Syntax erstellen

Dieses Beispiel, in dem die GGSALES-Masterdatei verwendet wird, erzeugt einen koordinierten zusammengesetzten Layout-Report, der ein Diagramm und einen Report enthält (indem der erste Report im vorherigen Beispiel mit einem Diagramm ersetzt wird). Beachten Sie, dass eine Diagrammanfrage mit zwei BY-Feldern für jeden Wert des ersten BY-Feldes (REGION) ein Diagramm erzeugt, und dass diese Dateien benannt werden, indem dem HOLD-Dateinamen Folgenummern angehängt werden. Beispielsweise HOLD0.SVG, HOLD1.SVG usw.

Es sind, um diese Diagramme als eine Komponente eines koordinierten zusammengesetzten Layout-Reports in einen Report zu platzieren, mehrere COMPUTE-Befehle nötig, um den Namen jeder Diagrammdatei zu konstruieren (HOLD0.SVG, HOLD1.SVG, usw.). Zusätzlich fügt ein COMPUTE-Befehl die Bilddateien in HEADING der TABLE-Anfrage ein, so dass sie mit denselben Werten von REGION assoziiert sind, von denen Sie ursprünglich erzeugt wurden.

Geben Sie die folgende Syntax in den Texteditor-Tab des Document Composers ein.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(0.25 1), DIMENSION=(4 4), $
COMPONENT=Fuel, TYPE=REPORT, POSITION=(7.25 1), DIMENSION=(4 4), $
END
SET COMPONENT=Sales
GRAPH FILE GGSALES
SUM PCT.DOLLARS
BY REGION NOPRINT
BY PRODUCT
ON GRAPH SET LOOKGRAPH HBAR
ON GRAPH HOLD AS HOLD FORMAT SVG
ON GRAPH SET GRAPHSTYLE *
setPlace(true);
setColorMode(1);
setDepthRadius(0);
setDepthAngle(0);
setDisplay(getO1MajorGrid(),false);
setTransparentBorderColor(getFrame(),true);
setDisplay(getDataText(),true);
setTextFormatPreset(getDataText(),28);
setFontSizeAbsolute(getDataText(),true);
setFontSizeInPoints(getDataText(),9);
setPlaceResize(getDataText(),0);
setFontStyle(getDataText(),0);
setTransparentBorderColor(getSeries(0),true);
setDisplay(getO1AxisLine(),false);
setFontSizeAbsolute(getO1Label(),true);
setFontSizeInPoints(getO1Label(),9);
setPlaceResize(getO1Label(),0);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeInPoints(getY1Label(),9);
setPlaceResize(getY1Label(),0);
setTextFormatPreset(getY1Label(),28);
setGridStyle(getY1MajorGrid(),3);
setDisplay(getY1AxisLine(),false);
setDisplay(getY1MajorGrid(),false);
setDisplay(getY1Label(),false);
setDataTextPosition(3);
setTextString(getO1Title(),"");
setTextString(getY1Title(),"");
setFontStyle(getTitle(),0);
END
TABLE FILE GGSALES
"Percent of Sales by Product in <REGION"
" "
SUM
COMPUTE CNTR/I4 = CNTR + 1; NOPRINT
COMPUTE CNTR2/A4 = IF &FOCGRAPHCNT EQ 1 THEN ' ' ELSE FTOA(CNTR-1,'(F4)','A4'); NOPRINT
COMPUTE IMG/A16 = 'HOLD'||LJUST(4,CNTR2,'A4')|| '.svg'; NOPRINT
BY REGION NOPRINT
ON REGION PAGE-BREAK
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
type=HEADING, IMAGE=(IMG), position=(0 0), $
TYPE=REPORT,PAGE-LOCATION=OFF,$
TYPE=REPORT, FONT=HELVETICA, COLOR=BLACK, SQUEEZE=ON, $
END
SET COMPONENT=Fuel
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
COMPOUND END

Die erste Seite der Ausgabe ist:



Beispiel: Mehrseitige Page Layouts mit Document Composer-Syntax erstellen

In diesem Beispiel, das die GGSALES-Masterdatei verwendet, ermöglichen es mehrseitige Layouts, dass Komponenten auf mehreren Seiten an festgelegten Stellen platziert werden. Beispielsweise kann ein koordinierter zusammengesetzter Layout-Report die Komponenten-Reports R1 und R2 für jeden Wert des ersten Sortierfeldes auf den ungeraden Seiten (Vorderseite) und R3 auf den geraden Seiten (Rückseite) enthalten. Sie können zusätzlich dieselbe Kopfzeile, die ein Logo und Text sowie den eingebetteten Wert des ersten Sortierfeld enthält, an den Anfang jeder Seite platzieren.

Erstellen Sie für den Kopfzeilenreport eine Prozedur (namens HEADER.FEX) und geben Sie die folgende Syntax ein:

TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=poweredbyibi.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=4, $
END

Wir verwenden die Komponenten R1 und R2 aus dem vorherigen Beispiel. Speichern Sie sie, falls dies nicht bereits geschehen ist, als REPORT1.FEX und REPORT2.FEX. Geben Sie die folgende Syntax als die R3-Reportkomponente ein, indem Sie eine Prozedur namens REPORT3.FEX erstellen.

TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END

Geben Sie über den Texteditor-Tab des Document Composers die folgende Syntax ein, die angibt, dass die Reportkomponenten R1 und R2 auf Seite 1 angezeigt werden. Die Reportkomponente R3 wird auf Seite 2 angezeigt und der Kopfzeilenreport wird auf allen Seiten des Dokuments angezeigt.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
EX HEADER
SET COMPONENT=R1
EX REPORT1
SET COMPONENT=R2
EX REPORT2
SET COMPONENT=R3
EX REPORT3
COMPOUND END

Seite 1 der Ausgabe ist:

Seite 2 der Ausgabe ist:



Beispiel: Seitenüberlauf mit Document Composer-Syntax erstellen

Ein üblicher Reporttyp enthält ein festes Layout am Anfang der Seite, gefolgt von einem Report, der detaillierte Datensätze unbestimmter Länge enthält. Beispielsweise kann eine Maklerabrechnung am Anfang den Namen des Kunden sowie seine Adresse, ein Vermögensverteilungsdiagramm und einen Vergleich des Portfolios mit Marktindizes enthalten, gefolgt von einer Liste der Wertpapiere im Konto. Wenn die Liste der Wertpapiere nicht auf die erste Seite passt, soll sie auf der zweiten Seite unter der Kopfzeile, die auf allen Seiten angezeigt wird (z. B. ein Logo, Kontonummer, Seitenzahl), fortgesetzt werden. Mit der OVERFLOW-POSITION- und OVERFLOW-DIMENSION-Syntax können wir angeben, wo der Report auf der Überlaufseite fortgesetzt werden soll, und was die maximale Länge auf jeder Überlaufseite ist. (Beachten Sie, dass die Breite auf allen Seiten gleich sein sollte.)

Das folgende Beispiel, in dem die GGSales-Masterdatei verwendet wird, zeigt, wie Sie OVERFLOW-POSITION und OVERFLOW-DIMENSION verwenden können, um die zweite Reportkomponente (R2) so neu zu positionieren, dass sie auf der ersten Seite unter der ersten Komponente und auf den nachfolgenden Seiten zwei Zoll unter dem oberen Seitenrand anfängt. Beachten Sie, dass dies am Anfang jeder Seite ausreichend Platz lässt für die Kopfzeile-Reportkomponente (HEADER).

Zusätzlich erzwingt PAGELAYOUT=ALL, dass die HEADER-Komponente am Anfang jeder Überlaufseite angezeigt wird.

Geben Sie die folgende Syntax in den Texteditor-Tab des Document Composers ein.

SET PAGE-NUM=OFF
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=Example, LAYOUT=ON, MERGE=OFF, $
 PAGELAYOUT=1, $
    COMPONENT=R1, TYPE=REPORT, POSITION=(1.5 2), DIMENSION=(8 3), $
    COMPONENT=R2, TYPE=REPORT, POSITION=(.5 5), DIMENSION=(8 5),
        OVERFLOW-POSITION=(.5 2), OVERFLOW-DIMENSION=(8 8.5), $
  PAGELAYOUT=ALL, $    
    COMPONENT=HEADER, TYPE=REPORT, POSITION=(1.25 1), DIMENSION=(6 1), $
END
SET COMPONENT=R1
TABLE FILE GGSALES
HEADING CENTER
"Report 1"
"Sales Summary by Category"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
HEADING CENTER
"Report 2"
"Sales Detail Report"
" "
SUM UNITS BUDUNITS DOLLARS BUDDOLLARS
BY CATEGORY BY PRODUCT BY REGION
ON CATEGORY UNDER-LINE
ON PRODUCT SUB-TOTAL
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SQUEEZE=ON, $
END
SET COMPONENT=HEADER 
TABLE FILE GGSALES
HEADING
"Gotham Grinds sales to Information Builders, October 1997"
BY CATEGORY NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, IMAGE=gotham.gif, POSITION=(3.25 .25), DIMENSION=(2 .75), $
END

Die erste Seite der Ausgabe ist:

Die zweite Seite der Ausgabe ist:



x
Syntax: Objekte mit Document Composer-Syntax zeichnen

Es können auf der Seite verschiedene Objekte gezeichnet werden, um den Report zu verbessern. Linien, Boxen, statische Textfolgen und Abbildungen sind die derzeit unterstützten Objekte.

Die Syntax für diese Objekte kann im StyleSheet eines Report angezeigt werden, kann jedoch auch in einer PAGELAYOUT-Gruppierung in den COMPOUND LAYOUT-Deklarationen enthalten sein. Die Syntax für jedes Zeichnungsobjekt ist nachfolgend beschrieben.



Beispiel: Objekte mit Document Composer-Syntax abbilden

Im folgenden Beispiel sehen Sie, wie Zeichnungsobjekte in die COMPOUND LAYOUT-Syntax mithilfe der GGSALES-Masterdatei platziert werden können. Beachten Sie, dass ein Zeichnungsobjekt, wie eine COMPONENT, auf der Seite angezeigt wird, deren PAGELAYOUT-Deklaration es folgt.

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=1, $
COMPONENT=Sales, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
COMPONENT=Budget, TYPE=REPORT, POSITION=(6.25 1), DIMENSION=(4 4), $ 
OBJECT=IMAGE, IMAGE=gglogo.gif, POSITION=(1 4.5), DIMENSION=(1 1), $ 
OBJECT=BOX, POSITION=(1 1), DIMENSION=(5 3), BACKCOLOR=GOLDENROD, $
END
SET COMPONENT=Sales
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS
BY REGION NOPRINT
BY CATEGORY 
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, STYLE=BOLD, $
END
SET COMPONENT=Budget
TABLE FILE GGSALES
"Budget report for <REGION"
" "
SUM BUDDOLLARS
BY REGION NOPRINT
BY CATEGORY
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, $
END
COMPOUND END

Die erste Seite der Ausgabe ist:

Hinweis: Ein Zeichnungsobjekt wird nur dann abgebildet, wenn sich in seinem PAGELAYOUT wenigstens eine COMPONENT befindet.



x
Syntax: Raster mit Document Composer-Syntax anzeigen

Der SET LAYOUTGRID-Befehl kann verwendet werden, um Report-Layouts manuell zu entwickeln. Die Anzeige von Rastern blendet ein dünnes Raster von einem Zoll mal einem Zoll auf der Seite ein, so dass die Position der verschiedenen Reportkomponenten festgestellt werden kann. Derzeit funktioniert das Raster nur in Zoll.

Geben Sie die folgende Syntax ein, um Raster anzuzeigen:

SET LAYOUTGRID=ON


x
Referenz: Textformatierung-Markup-Tags für ein Textobjekt

Hinweis: Wenn Ihr Text offene spitze Klammern (<) enthält, müssen Sie hinter jede offene spitze Klammer, die Teil des Textes ist, ein Leerzeichen platzieren. Wenn Sie dies nicht tun, wird der Text, der der offenen spitzen Klammer folgt, als der Anfang eines Markup-Tags interpretiert, und nicht als Text angezeigt.

Schriftart-Eigenschaften

Der Schriftart-Tag unterstützt drei Attribute: Schriftbild, Größe und Farbe (wobei die Farbe als der hexadezimale Zahlencode für die Farbe angegeben werden muss):

<font face="font" size=[+|-]n color=color_code>text</font>

Beispiel:

<font face="New Century Schoolbook">Test1</font>
<font face="Times" size=12>test2</font>
<font face="Times New Roman" color=#0000FF size=+4>Test3</font> 
<font size=-2 face="Times New Roman" color=#0000FF >Test4</font>

Schriftstile

Die Schriftstile fett, kursiv, unterstrichen und hochgestellt werden unterstützt:

Fett: <b>Text</b>

Kursiv: <i>text</i>

Unterstrich: <u>Text</u>

Hochgestellt: <sup>Text</sup>

Zeilenumbrüche

Der Zeilenumbruch-Tag nach einem Textteil führt dazu, dass der nächste Textteil in einer neuen Zeile beginnt. Beachten Sie, dass es für Zeilenumbruch keinen Endtag gibt:

<br>

Textausrichtung

Die Ausrichtungsoptionen beziehen sich sowohl auf umgebrochenen Text als auch auf angegebene Zeilenumbrüche. Es wird sowohl horizontale als auch vertikale Ausrichtung unterstützt.

Ungeordnete Liste (Aufzählung)

Der Ungeordnete Liste-Tag (ul) umschließt eine Aufzählung. Jedes Element ist von einem Listenelement-Tag (li) umschlossen. Der Starttag und der Endtag für die Liste müssen jeweils auf einer eigenen Zeile stehen. Jedes Listenelement muss auf einer neuen Zeile beginnen:

<ul>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ul>

Per Default ist das Aufzählungszeichen ein fetter Punkt. Sie können auch Kreis oder Rechteck angeben:

<ul type=disc>
<ul type=circle>
<ul type=square>

Sortierte Liste (Zahl oder Buchstabe)

Der Sortierte Liste-Tag (ol) umschließt eine Liste, in der jedes Element eine fortlaufende Zahl oder einen fortlaufenden Buchstaben hat. Jedes Element ist von einem Listenelement-Tag (li) umschlossen. Der Starttag und der Endtag für die Liste müssen jeweils auf einer eigenen Zeile stehen. Jedes Listenelement muss auf einer neuen Zeile beginnen:

<ol>
<li>list item1</li>
<li>list item2</li>
  .
  .
  .
</ol>

Per Default werden arabische Ziffern (type=1) für die Sortierung der Liste verwendet. Sie können die folgenden Reihenfolgen angeben:

Arabische Ziffern (der Default): <ol type=1>

Kleinbuchstaben: <ol type=a>

Großbuchstaben: <ol type=A>

Kleingeschriebene römische Ziffern: <ol type=I>

Großgeschriebene römische Ziffern: <ol type=I>

Hyperlinks

Hyperlinks können in PDF-Dokumenten in Text-Markup aufgenommen werden.

Die Syntax für das Anchor-Markup-Tag ist ein Teil der HTML-Anchor-Syntax:

<a href="hyperlink">Text to display</a>

Hierbei gilt:

Hyperlink

Ist der Hyperlink, zu dem gesprungen wird, wenn auf den Text geklickt wird.

Anzuzeigender Text

Ist der Text, der für den Hyperlink angezeigt werden soll.

Beispiel:

<a href="http://www.example.com/help.htm">Click here for help</a>

Es werden im Anchor-Markup-Tag keine anderen Attribute unterstützt.

Seitennummerierung und Daten

Es gibt zwei Pseudo-HTML-Tags für das Einbetten von Seitenzahlen in den Text auf einer Masterseite für einen koordinierten zusammengesetzten Layout-Report:

Aktuelle Seitenzahl: <ibi-page-number/>

Gesamtseitenanzahl: <ibi-total-pages/>

Beachten Sie, dass, wenn MARKUP=ON eingestellt ist, Platz für die größte Seitenzahl zugewiesen ist, so dass es eine große Lücke zwischen der Seitenzahl und dem folgenden Text geben kann. So entfernen Sie den zusätzlichen Platz im Textobjekt, der die Seitennummerierung-Tags hat:

Fügen Sie, um ein Datum in der Reportausgabe anzuzeigen, eine WebFOCUS-Datumsvariable in ein Textobjekt auf der Masterseite (wie &DATEtrMDYY) ein.



Beispiel: Ein Zusammengesetztes Layout-Textobjekt mit Markup-Tags formatieren

In der folgenden Anfrage ist ein Textobjekt mit Markup-Tags in einer PDF-Ausgabedatei zu sehen.

Hinweis: Text-Markup-Syntax darf keine verborgenen Zeilenumschaltungs- oder Zeilenvorschubzeichen enthalten. Um dieses Beispiel in der Dokumentation darstellen zu können, wurden Zeilenvorschubzeichen hinzugefügt, so dass der Beispielcode umgebrochen wird, um auf die gedruckte Seite zu passen. Um dieses Beispiel in Ihrer Umgebung auszuführen, kopieren Sie den Code in einen Texteditor und löschen Sie alle Zeilenvorschubzeichen im Text-Markup-Objekt, indem Sie ans Ende jeder Zeile gehen und auf Löschen drücken. In manchen Fällen müssen Sie ein Leerzeichen hinzufügen, um die Struktur der Zeichenfolge beizubehalten. Zusätzliche Informationen darüber, wie Sie Zeilenumschaltungen im Textobjekt anzeigen finden Sie unter Textformatierung-Markup-Tags für ein Textobjekt.

SET PAGE-NUM=OFF
SET LAYOUTGRID=ON
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD AS LINESP1 FORMAT PDF
ON TABLE SET STYLE *
type=report, size=8, $
object=string, position=(1 1), dimension=(7 3), wrap=on, markup=on,
 linespacing=multiple(3), 
 text='<b><font face="Arial" size=12>This paragraph is triple-spaced
 (LINESPACING=MULTIPLE(3)):</font></b>
 <full>Our <i>primary</I> goal for fiscal 2006 was to accelerate our
 transformation to customer centricity. In this letter, I’d like to
 give you an update on this work, which contributed to the 22-percent
 increase in earnings from continuing operations we garnered for fiscal
 2006. Since the past is often prologue to the future, I’d like to
 describe how customer centricity is influencing not only our goals for
 fiscal 2007, but also our long-term plans. At Gotham Grinds, customer
 centricity means treating each customer as a unique individual, meeting
 their needs with end-to-end solutions, and engaging and energizing our
 employees to serve them.</full>', $
ENDSTYLE
END

In dieser Anfrage:

Die Ausgabe ist:



Beispiel: Text- und Linienobjekte auf einer Masterseite abbilden

In der folgenden Anfrage wird eine Linie auf der Masterseite zwischen dem Kopfzeilenreport und den Komponenten-Reports platziert und eine Linie sowie eine Zeichenfolge im unteren Bereich jeder Seite:

SET PAGE-NUM=OFF
SET SQUEEZE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
SECTION=S1, LAYOUT=ON, MERGE=ON, ORIENTATION=LANDSCAPE, $
PAGELAYOUT=ALL, $
COMPONENT=HEADER, TYPE=REPORT, POSITION=(1 1), DIMENSION=(4 4), $
OBJECT=STRING, POSITION=(1 6.6), MARKUP=ON,
TEXT='<font face="Arial" color=#0000FF size=12> Page <ibi-page-number/>
        </font> ', WRAP=ON, DIMENSION=(4 4),$
OBJECT=LINE, POSITION=(1 2.5), ENDPOINT=(9.5 2.5),
        BORDER-COLOR=BLUE,$
OBJECT=LINE, POSITION=(1 6.5), ENDPOINT=(9.5 6.5),
        BORDER-COLOR=BLUE,$
PAGELAYOUT=1, $
COMPONENT=R1, TYPE=REPORT, POSITION=(1 3), DIMENSION=(4 4), $
COMPONENT=R2, TYPE=REPORT, POSITION=(6 3), DIMENSION=(4 4), $
PAGELAYOUT=2, $
COMPONENT=R3, TYPE=REPORT, POSITION=(4 3), DIMENSION=(4 4), $
END
SET COMPONENT=HEADER
TABLE FILE GGSALES
" "
"Report package for <REGION"
BY REGION NOPRINT
ON TABLE HOLD FORMAT PDF
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, SIZE=20, $
TYPE=REPORT, IMAGE=gglogo.gif, POSITION=(+.25 +.25), $
TYPE=HEADING, LINE=2, ITEM=1, POSITION=1.5, $
END
SET COMPONENT=R1
TABLE FILE GGSALES
"Sales report for <REGION"
" "
SUM DOLLARS/F8M
BY REGION NOPRINT
BY ST
BY CITY
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=RED, SQUEEZE=ON, $
END
SET COMPONENT=R2
TABLE FILE GGSALES
"Number of unit sales per product for <REGION"
" "
SUM CNT.UNITS AS 'Number of units sold'
BY REGION NOPRINT
BY PRODUCT
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=BLUE, SQUEEZE=ON, $
END
SET COMPONENT=R3
TABLE FILE GGSALES
"Report R3 for <REGION"
BY REGION NOPRINT
SUM DOLLARS BY ST
ON TABLE SET STYLE *
TYPE=REPORT, FONT=HELVETICA, COLOR=GREEN, $
END
COMPOUND END

Die erste Seite der Ausgabe ist:

Die zweite Ausgabeseite hat dieselben Zeichnungsobjekte:



Beispiel: Text-Markup in PDF-Reportausgabe vertikal ausrichten

Die folgende Anfrage erstellt drei Boxen und platziert in jede ein Textfolgeobjekt:

Hinweis: Text-Markup-Syntax darf keine verborgenen Zeilenumschaltungs- oder Zeilenvorschubzeichen enthalten. Um dieses Beispiel in der Dokumentation darstellen zu können, wurden Zeilenvorschubzeichen hinzugefügt, so dass der Beispielcode umgebrochen wird, um auf die gedruckte Seite zu passen. Um dieses Beispiel in Ihrer Umgebung auszuführen, kopieren Sie den Code in einen Texteditor und löschen Sie alle Zeilenvorschubzeichen im Text-Markup-Objekt, indem Sie ans Ende jeder Zeile gehen und auf Löschen drücken. In manchen Fällen müssen Sie ein Leerzeichen hinzufügen, um die Struktur der Zeichenfolge beizubehalten. Zusätzliche Informationen darüber, wie Sie Zeilenumschaltungen im Textobjekt anzeigen finden Sie unter Textformatierung-Markup-Tags für ein Textobjekt.

SET PAGE-NUM=OFF
TABLE FILE GGSALES
BY REGION NOPRINT
ON TABLE PCHOLD FORMAT PDF
ON TABLE SET STYLE *
type=report, font=arial, size=10, $
object=box, position=(1 1), dimension=(6 1), $
object=line, position=(3 1), endpoint=(3 2), $
object=line, position=(5 1), endpoint=(5 2), $ 
object=string, text='<top>Vertically aligned text within a text object using top alignment.</top>', position=(1.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<mid>Vertically aligned text within a text object using middle alignment.</mid>', position=(3.05 1), dimension=(2 1), linespacing=exact(.15), markup=on, wrap=on, $
object=string, text='<bottom>Vertically aligned text within a text object using bottom alignment.</bottom>', position=(5.05 .9), dimension=(2 1),linespacing=exact(.15), markup=on, wrap=on, $ 
END

Die Ausgabe ist:



x
Referenz: Koordinierte zusammengesetzte Layout-Reports mit fehlenden Daten

Ein koordinierter zusammengesetzter Layout-Report besteht aus einzelnen Komponenten-Reports oder Diagrammen mit einem gemeinsamen ersten Sortierfeld. Die zusammengesetzte Prozedur erzeugt ein Ausgabedokument mit einer separaten Seite (oder einer Gruppe von Seiten) für jeden individuellen Wert des Sortierfeldes, wobei die eingebetteten Komponenten segmentiert sind, um die Daten anzuzeigen, die diesem Sortierfeldwert entsprechen.

Eine koordinierter zusammengesetzter Layout-Report-Seite wird im vorgesehenen Seiten-Layout für jeden Sortierfeldwert erzeugt, der in wenigstens einem der Komponenten-Reports gefunden wurde, wodurch die entsprechenden Daten für diese Komponenten präsentiert werden, wenn Daten für diesen Wert vorhanden sind, und ein leerer Komponenten-Reports präsentiert wird, wenn keine Daten vorhanden sind.

Wie eine leere Komponente auf der Reportseite dargestellt wird hängt davon ab, wie die Positionierung der Komponente im koordinierten zusammengesetzten Layout-Report definiert ist. Komponenten können mit absoluter Positionierung definiert werden oder in einem bestimmten Verhältnis zu anderen Komponenten im Layout. Wenn die leere Komponente und nachfolgende Komponenten auf der Seite mit absoluter Positionierung definiert sind, wird der leere Komponenten-Report als leerer Bereich an der vorgesehenen Position angezeigt. Wenn zwischen der leeren Komponente und nachfolgenden Komponenten relative Positionierung definiert ist, werden die nachfolgenden Komponenten auf der Seite nach oben verschoben und es wird kein leerer Platz in dem Bereich angezeigt, der für die leere Komponente definiert ist.

In zusammengesetzten Reports, in denen relative Positionierung zwischen Reports definiert ist, wird, wenn ein leerer Report vorkommt, der Report, der diesem leeren Report folgt, vertikal relativ zum unteren Rand des letzten nicht leeren Reports positioniert und horizontal relativ zum Seitenrand. Dies bedeutet, dass, wenn ein Report keine Daten enthält, der nachfolgende Report nach oben verschoben wird (vertikal) und in einem bestimmten Verhältnis zum vorherigen Report beginnt, jedoch nicht in einem bestimmten Verhältnis zu einem der vorherigen Reports horizontal auf der Seite verschoben wird.

Unter Verwendung von POSITION = (X Y) wird die Platzierung eines Reports festgelegt durch die linke Koordinate (X = horizontal) und die obere Koordinate (Y = vertikal). Jede dieser Koordinaten kann unabhängig als in einem bestimmten Verhältnis zum vorherigen Report oder an einer festgelegten Stelle auf der Seite definiert werden.

Um die Positionierung so zu definieren, dass der Report auf der Seite nach oben verschoben wird, um den leeren Report zu ersetzen, jedoch an einer festen linken Position auf der Seite verankert ist, können Sie Y-Koordinate (oben) als relativ definieren und die X-Koordinate (links) verankern. Ändern Sie, um eine der Positionskoordinaten zu verankern, den Verweis von einer relativen Position (+/-) zu einer absoluten Position. Beispiel:

Beide Koordinaten relativ: POSITION(+0,003 +0,621)

Horizontal verankert / vertikal fließend: POSITION( 0,520 +0,621)

Sie müssen Ihrer Anfrage keine WebFOCUS-Syntax hinzufügen oder sie ändern, um dieses Feature nutzen zu können. Sie sollten jedoch darauf achten, wie Sie die Daten in Ihren koordinierten Komponenten auswählen und in Beziehung setzen, um sicherzustellen, dass die gewünschte Ausgabe erstellt wird.



Beispiel: Setup: Einen koordinierten zusammengesetzten Report mit fehlenden Daten erstellen

In diesem Beispiel erstellen wir Anweisungen, die Reports über die ausstehenden Lageraufträge für eine ausgewählte Ladengruppe erstellen. Jeder Laden kann unerledigte Aufträge in den drei Inventarkategorien haben: Lebensmittel, Kaffee und Geschenke.

Um zu zeigen, wie das funktioniert, erstellen wir zunächst ein Datendateiset: eine Kopfzeilendatei, die die Kontaktinformationen für die ausgewählten Läden enthält und Transaktionsdateien für jede Inventarkategorie. Wir wählen bestimmte Daten aus, um zu zeigen, wie dies funktioniert, wenn unterschiedliche Komponenten-Reports leer sind.

Nachdem die Datendateien erstellt wurden, erstellen wir vier Komponenten-Reports. Einen, in dem die Kopfzeileninformationen angezeigt werden, und je einen für jede Inventarkategorie.

Schließlich kombinieren wir sie in einem zusammengesetzten Layout-Report, wodurch alle diese Informationen auf einer einzelnen Seite für jeden Laden angezeigt werden.



Beispiel: Schritt 1: Die Datendateien erstellen

Die folgenden vier Datendateien werden von einem Join der Datenquellen GGORDER und GGSALES erstellt:

Datendatei erstellt

Enthaltener Informationstyp

Enthaltene Läden

GGHDR

Ladeninformationen

R1019, R1020, R1040, R1041

GG1

Auftragsabwicklung für Kaffee

R1019, R1040, R1088

GG2

Auftragsabwicklung für Lebensmittel

R1019, R1020, R1041, R1088

GG3

Auftragsabwicklung für Geschenke

R1019, R1020, R1040, R1088

Die APP HOLD-, JOIN- und DEFINE-Befehle sind:

APP HOLD baseapp
JOIN
 GGORDER.ORDER01.STORE_CODE IN GGORDER TO
   UNIQUE GGSTORES.STORES01.STORE_CODE
   IN GGSTORES AS J1
END
DEFINE FILE GGORDER
PRODUCT_CATEGORY/A15=IF (PRODUCT_DESCRIPTION IN
                     ('Biscotti','Croissant','Scone')) THEN 'Food'
                     ELSE IF (PRODUCT_DESCRIPTION IN
                     ('French Roast','Hazelnut','Kona')) THEN 'Coffee' ELSE 'Gifts';
END

Die folgende Prozedur erstellt die Datenquelle GGHDR:

TABLE FILE GGORDER
SUM
     FST.STORE_NAME
     FST.ADDRESS1
     FST.ADDRESS2
     FST.CITY
     FST.STATE
     FST.ZIP
BY STORE_CODE
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1041');
ON TABLE NOTOTAL
ON TABLE HOLD AS GGHDR FORMAT FOCUS INDEX 'STORE_CODE'
END

Die folgende Prozedur erstellt die Datenquelle GG1:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Coffee' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1040','R1088');
ON TABLE HOLD AS GG1 FORMAT FOCUS INDEX 'STORE_CODE'
END

Die folgende Prozedur erstellt die Datenquelle GG2:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Food' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1041','R1088');
ON TABLE HOLD AS GG2 FORMAT FOCUS INDEX 'STORE_CODE'
END

Die folgende Prozedur erstellt die Datenquelle GG3:

TABLE FILE GGORDER
PRINT
     QUANTITY
     UNIT_PRICE
     PACKAGE_TYPE
     SIZE
     VENDOR_NAME
     PRODUCT_CATEGORY
BY STORE_CODE
BY ORDER_DATE
BY PRODUCT_DESCRIPTION
WHERE ( PRODUCT_CATEGORY EQ 'Gifts' ) AND ( ORDER_DATE GE '09/01/97' );
WHERE STORE_CODE IN ('R1019','R1020','R1040','R1088');
ON TABLE HOLD AS GG3 FORMAT FOCUS INDEX 'STORE_CODE'
END


Beispiel: Schritt 2: Die Komponenten-Reports erstellen

Die folgende Prozedur (GGHDR.FEX) erstellt die erste Reportkomponente für den koordinierten zusammengesetzten Layout-Report von der GGHDR-Datenquelle. Dies agiert als Kopfzeile für jede Seite des zusammengesetzten Layout-Reports. Das gemeinsame Sortierfeld für alle Reportkomponenten ist STORE_CODE. Auf jeder Seite der PDF-Ausgabedatei listet diese Prozedur den Namen und die Adresse eines Ladens auf:

TABLE FILE GGHDR
BY STORE_CODE NOPRINT
HEADING
"<STORE_NAME "
"<ADDRESS1 "
"<ADDRESS2 "
"<CITY , <STATE   <ZIP "
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=BLUE,$
ENDSTYLE
END

Die folgende Prozedur (GGRPT1.FEX) erstellt die zweite Reportkomponente für den koordinierten zusammengesetzten Layout-Report. Sie zeigt für denselben Ladencode-Wert im Kopfzeilenreport Daten aus der GG1-Datenquelle über die Produktkategorie Kaffee an:

TABLE FILE GG1
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE AS 'Store'
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
    COLOR=RED,$
ENDSTYLE
END

Die folgende Prozedur (GGRPT2.FEX) erstellt die dritte Reportkomponente für den koordinierten zusammengesetzten Layout-Report. Sie zeigt für denselben Ladencode-Wert im Kopfzeilenreport Daten aus der GG2-Datenquelle über die Produktkategorie Nahrungsmittel an:

TABLE FILE GG2
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
    SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END

Die folgende Prozedur (GGRPT3.FEX) erstellt die letzte Reportkomponente für den koordinierten zusammengesetzten Layout-Report. Sie zeigt für denselben Ladencode-Wert im Kopfzeilenreport Daten aus der GG3-Datenquelle über die Produktkategorie Geschenke an:

TABLE FILE GG3
SUM
     QUANTITY
     UNIT_PRICE
     FST.PACKAGE_TYPE AS ',Package'
     FST.SIZE AS ',Size'
     VENDOR_NAME
BY STORE_CODE
BY PRODUCT_DESCRIPTION
HEADING
"<PRODUCT_CATEGORY"
" "
ON TABLE SET PAGE-NUM OFF
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
     UNITS=IN,
     SQUEEZE=ON,
     ORIENTATION=PORTRAIT,$
TYPE=REPORT,
     GRID=OFF,
     FONT='ARIAL',
     SIZE=9,$
TYPE=DATA,
     SIZE=10,$
TYPE=TITLE,
     STYLE=BOLD,
     SIZE=10,$
TYPE=HEADING,
     SIZE=10,
     STYLE=BOLD,
     COLOR=RED,$
ENDSTYLE
END


Beispiel: Schritt 3: Den koordinierten zusammengesetzten Layout-Report erstellen

Die folgende Prozedur (GGCMPD.FEX) kombiniert die vier Komponenten in einem koordinierten zusammengesetzten Layout-Report. Die Reports und die relative Positionierung für jede Komponente wird in der folgenden Übersicht gezeigt:

Die koordiniertes zusammengesetztes Layout-Syntax is:

SET HTMLARCHIVE=ON
COMPOUND LAYOUT PCHOLD FORMAT PDF
UNITS=IN, $
SECTION=section1, LAYOUT=ON, MERGE=ON, ORIENTATION=PORTRAIT,
   PAGESIZE=Letter,  $
PAGELAYOUT=1, NAME='Page layout 1', text='Page layout 1',
   TOC-LEVEL=1, BOTTOMMARGIN=0.5, TOPMARGIN=0.5,  $
COMPONENT='report1', TEXT='report1', TOC-LEVEL=2,
   POSITION=(0.667 1.083), DIMENSION=(3.417 1.412),  $
COMPONENT='report2', TEXT='report2', TOC-LEVEL=2,
   POSITION=(0.837 2.584), DIMENSION=(* *),  $
COMPONENT='report3', TEXT='report3', TOC-LEVEL=2,
   POSITION=(-0.006 +0.084), DIMENSION=(* *),
   RELATIVE-TO='report2', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
COMPONENT='report4', TEXT='report4', TOC-LEVEL=2,
   POSITION=(+0.010 +0.080), DIMENSION=(* *),
   RELATIVE-TO='report3', RELATIVE-POINT=BOTTOM-LEFT,
   POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT='report1'
-INCLUDE GGHDR.FEX
SET COMPONENT='report2'
-INCLUDE GGRPT1.FEX
SET COMPONENT='report3'
-INCLUDE GGRPT2.FEX
SET COMPONENT='report4'
-INCLUDE GGRPT3.FEX
COMPOUND END

Auf der ersten Seite der PDF-Ausgabedatei haben alle Komponenten Daten und werden in der Reportausgabe angezeigt:

Auf der zweiten Reportseite hat der Report GGRPT2.FEX keine Daten für den Laden in der Kopfzeile abgerufen. Daher fehlt die Kaffee-Komponente. Beachten Sie, dass, da die Komponenten 3 und 4 RELATIVE-TO den Komponenten positioniert sind, die in der zusammengesetztes Layout-Syntax über ihnen definiert sind, die Komponenten Nahrungsmittel und Geschenke nach oben verschoben werden, und dort, wo die Komponente Kaffee gewesen wäre, kein Platz leer bleibt:

Auf der Seite 5 hat der Kopfzeilenreport keine Daten für einen Ladencode-Wert in den anderen drei Komponenten abgerufen. Es wird dennoch eine Seite für diesen Ladencode erzeugt. Da die zweite Komponente (Kaffee-Report) in der Zusammengesetztes Layout-Syntax absolut positioniert wurde, und nicht RELATIVE-TO der ersten Komponente (Kopfzeilenreport), bleibt der Platz leer, an dem der Kopfzeilenreport angezeigt worden wäre:


Nach oben

x
Ein Inhaltsverzeichnis mit BY-Feldeinträgen für zusammengesetzte PDF-Layout-Reports erzeugen

In diesem Abschnitt:

Vorgehensweise:

Referenz:

Mit Zusammengesetztes Layout-Syntax können Sie ein Inhaltsverzeichnis für einen zusammengesetzten PDF-Report erzeugen.

Das Inhaltsverzeichnis kann entweder vom Adobe Reader® als PDF-Lesezeichen angezeigt werden, oder als Inhaltsverzeichnisseite, die an den Anfang des Dokuments platziert wird, oder beides. Sowohl die Inhaltsverzeichnis-Einträge als auch die Lesezeichen sind mit den Komponenten und den enthaltenen Sortierfeldern verknüpft. Diese Verknüpfungen positionieren den Reader auf der Seite, auf der sich die Inhaltsverzeichnis-Verknüpfung befindet.

Sie nehmen eine beliebige Report- oder Diagrammkomponente in das Inhaltsverzeichnis auf einer bestimmten Ebene auf, indem Sie sowohl eine TOC-Beschreibung als auch eine TOC-Ebene in der Zusammengesetztes Layout-Syntax für die Komponente definieren. Es können zusätzlich die BY-Feldwerte jeder beliebigen Reportkomponente innerhalb der Inhaltsverzeichnisstruktur präsentiert werden, um eine Ebene eingerückt innerhalb des Komponenten-Report-Eintrags. BYTOC-Einträge werden nur für Reportkomponenten unterstützt (nicht Diagrammkomponenten).

Zusammengesetzte PDF-Reports, die die Inhaltsverzeichnisseite oder Lesezeichen basierend auf BY-Feldeinträgen definieren, werden sowohl für nicht koordinierte (MERGE=OFF) als auch für koordinierte Reports (MERGE=ON) unterstützt. Für koordinierte Reports wird der primäre Sortierschlüssel als der Eintrag der obersten Ebene für individuelle Instanzen des Reports präsentiert, und nachfolgende Schlüssel werden präsentiert innerhalb der entsprechenden Komponenten in der Struktur. Diese koordinierten Reports können auch durch den primären Sortierschlüssel mit Bursting in separate Dokumente unterteilt werden und mit dem ReportCaster verteilt werden.



x
Inhaltsverzeichnis-Features

Die Inhaltsverzeichnis-Seite (TOC) zeigt eine Zusammenfassung der Dokumenteninhalte gemeinsam mit den Seitenzahlen an und kann mit dem Dokument ausgedruckt werden. Die Einträge im Inhaltsverzeichnis erlauben Ihnen, auf einfache Weise zu einem bestimmten Abschnitt zu springen, während Sie das Dokument online betrachten. Die Einträge können mit jeder Komponente der zusammengesetzten Ausgabe (Seite, Report oder Diagramm), jedem Objekt (Bild, Bilddatei) im zusammengesetzten Report und vertikalen Sortierfeldwerte (BY-Feldwerte) in jedem Komponenten-Report verknüpft sein.

Der tatsächliche Inhalt des Inhaltsverzeichnisses ist als Textelement in der Zusammengesetztes Layout-Syntax dargestellt. Sie können Folgendes tun, wenn Sie eine Inhaltsverzeichnisseite verwenden:

Hinweis: Wenn das Inhaltsverzeichnis bei der Ausführung mehr als eine Seite einnimmt, werden die übrigen Inhalte mit derselben Größe und denselben Dimensionen ausgeführt wie die erste Seite, bis das gesamte Inhaltsverzeichnis ausgegeben wurde.



x
Syntax: Ein Inhaltsverzeichnis in einem zusammengesetzten PDF-Layout-Report erzeugen

Sie können Lesezeichen erzeugen, eine Inhaltsverzeichnisseite oder beides, indem Sie das BOOKMARKS- und/oder TOC-Objekt in die Zusammengesetztes Layout-Syntax aufnehmen. Dann die Komponentendefinitionen, geben Sie die Inhaltsverzeichnis-Ebene und -Beschreibung an und optional die BYTOC-Ebenen.

TOC-Attribute

COMPOUND LAYOUT PCHOLD FORMAT PDF
[OBJECT=BOOKMARKS, $]
[OBJECT=TOC, NAME='text1', 
   TEXT='<font face="font1" size=sz1>Table of Contents</font>',
   MARKUP=ON, TOC-NUMBERING={OFF|ON}, POSITION=(xy), [TOC-FILL=DOTS,]
   DIMENSION=(mn),
   font='font2', color={color|RGB(rgb)}, size=sz2, 
   METADATA=' TOCTITLE: Table of Contents', $]

Hierbei gilt:

OBJECT=BOOKMARKS
Erzeugt PDF-Lesezeichen für die Inhaltsverzeichnis-Einträge, die in den COMPONENT-Deklarationen angegeben sind.
OBJECT=TOC
Erzeugt eine Inhaltsverzeichnisseite für die Inhaltsverzeichnis-Einträge, die in den COMPONENT-Deklarationen angegeben sind.
NAME='text1'
Gibt einen Namen für das Inhaltsverzeichnisseite-Element an.
TEXT='<font face="font1" size=sz1>Table of Contents</font>'
Gibt den Titel und die Textcharakteristika für den Inhaltsverzeichnis-Titel an. Das MARKUP=ON-Attribut muss angegeben sein, damit diese Informationen richtig interpretiert werden können. Der Text wird nicht umgebrochen und muss der Breite nach in das Textelement passen.
MARKUP=ON
Führt dazu, dass die Markup-Tags, die mit dem Inhaltsverzeichnis-Titel verwendet werden, nicht als Text sondern als Formatierungsoptionen interpretiert werden.
TOC-NUMBERING={OFF|ON}
Gibt an, ob die Einträge auf der Inhaltsverzeichnisseite nummeriert sind. ON ist der Defaultwert.
POSITION=(x y)
Definiert die x- und y-Koordinaten für das Objekt auf der Seite.
DIMENSION=(a b)
Definiert die Größe der umgebenden Box für das Objekt.
font='font2', color={color|RGB(r g b)}, size=sz2,
Gibt Textcharakteristika für den Hauptteil des Inhaltsverzeichnisses an. Falls weggelassen, werden die Attribute dem TEXT-Attribut entnommen.
TOC-FILL=DOTS
Platziert Tab-Füllzeichen zwischen den Eintrag und die Seitenzahl. Wenn dieses Attribut nicht enthalten ist, werden der Eintrag und die Seitenzahl durch Leerzeichen getrennt.

Komponenteneinträge

COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] 
   POSITION=(xy),DIMENSION=(ab), $

Hierbei gilt:

component1
Ist eine Komponente, die in das Inhaltsverzeichnis aufgenommen werden soll.
title1
Ist der Titel für die Komponente, der als Inhaltsverzeichniseintrag verwendet werden soll.
TOC-LEVEL=n
Definiert n als die Inhaltsverzeichnis-Ebene für den Report, das Diagramm oder das Seiten-Layout-Objekt. Diese Option definiert die hierarchische Reihenfolge von Objekten im Inhaltsverzeichnis.

0 = das Objekt wird im Inhaltsverzeichnis nicht angezeigt.

1 = das Objekt wird im Inhaltsverzeichnis als Element auf der ersten Ebene angezeigt.

2 = das Objekt wird im Inhaltsverzeichnis als Element auf der zweiten Ebene angezeigt usw.

BYTOC=m
Gibt an, wie viele BY-Felder in den aktuellen Komponenteneintrag aufgenommen werden sollen (m).
POSITION=(x y)
Definiert die x- und y-Koordinaten für das Objekt auf der Seite.
DIMENSION=(a b)
Definiert die Größe der umgebenden Box für das Objekt.


x
Referenz: Verwendungshinweise für das Inhaltsverzeichnis

Allgemeine Hinweise

BYTOC-Hinweise



Beispiel: Lesezeichen und eine Inhaltsverzeichnisseite erstellen

Das folgende Beispiel hat zwei Komponenten-Reports. Es werden sowohl PDF-Lesezeichen als auch eine Inhaltsverzeichnisseite erzeugt. Jede Komponente befindet sich auf der Inhaltsverzeichnisebene 1 und hat je zwei Ebenen für BY-Felder unter den Einträgen auf der Ebene 1:

COMPOUND LAYOUT PCHOLD FORMAT PDF
OBJECT=BOOKMARKS, $
OBJECT=TOC, NAME='text1', 
  TEXT='<font face="ARIAL" size=10>Table of Contents</font>',
  MARKUP=ON, TOC-NUMBERING=ON, POSITION=(0.854 0.854),
  DIMENSION=(7.000 9.500), font='ARIAL', color=RGB(0 0 0),
  size=10, METADATA=' TOCTITLE: Table of Contents', $
SECTION=S1, LAYOUT=ON, MERGE=OFF, ORIENTATION=PORTRAIT, $
PAGELAYOUT=1, $
COMPONENT=report1, TEXT='Sales By Product', TOC-LEVEL=1, BYTOC=2,
  POSITION=(1 1), DIMENSION=(* *), $
COMPONENT=report2, TEXT='Sales By Region', TOC-LEVEL=1, BYTOC=2,
  POSITION=(+0.00 +0.519), DIMENSION=(* *), RELATIVE-TO='report1',
  RELATIVE-POINT=BOTTOM-LEFT, POSITION-POINT=TOP-LEFT, $
END
SET COMPONENT=report1
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY CATEGORY 
BY PRODUCT
BY REGION 
BY ST
HEADING
"Sales by Category"
ON TABLE HOLD FORMAT PDF
END
SET COMPONENT=report2
TABLE FILE GGSALES
SUM DOLLARS/F8M
BY REGION 
BY ST
BY CATEGORY 
BY PRODUCT
HEADING
"Sales by Region"
ON TABLE HOLD FORMAT PDF
END
COMPOUND END

Die Ausgabe zeigt, dass sich jeder Komponenten-Report auf der Inhaltsverzeichnisebene 1 befindet und zwei Ebenen mit Sortierfeldern unter sich hat. Für den Absatz nach Produkt-Report sind die BY-Felder Kategorie und Produkt. Für den Absatz nach Region-Report sind die BY-Felder Region und Staat. Jeder Eintrag im Inhaltsverzeichnis ist ein Link zu der Seite, die diesen Wert enthält:

Wenn Sie auf einen Eintrag auf der Inhaltsverzeichnisseite oder im Lesezeichenbereich klicken, wird die Seite geöffnet, die den Eintrag enthält. Wenn Sie beispielsweise auf den Absatz nach Region/Südosten-Eintrag klicken, wird die folgende Seite geöffnet:


Nach oben

x
Einen zusammengesetzten PDF- oder PS-Report erstellen

Vorgehensweise:

Zusammengesetzte Reports kombinieren mehrere Reports in einer einzelnen PDF- oder PS-Datei. Der erste PDF- oder PS-Report definiert das Format des vereinten Reports. Sie können somit Zwischenreports anderer Formate in einen übergreifenden Report einfügen. Mit zusammengesetzten Reports können Sie Daten von verschiedenen Datenquellen einholen und die Reports in einem ausschlaggebenden Report zusammenfügen. Dieser führt dann jede Anfrage aus und fasst die Ausgaben in einer einzigen PDF- oder PS-Datei zusammen.

Sie können dann den Report mit ReportCaster ausführen oder verteilen, wodurch der zusammengesetzte PDF-Report in Reader angezeigt wird oder der zusammengesetzte PS-Report direkt an einen Drucker gesendet wird. Genaueres über dieses Produkt finden Sie in der ReportCaster-Dokumentation.

Dies wird unterstützt mit Styling-Formaten, wie z. B. PDF, PS, EXL2K oder EXL07.

Informationen über das Erstellen von zusammengesetzten PDF-Reports mit Drillthrough finden Sie unter Einen zusammengesetzten PDF-Report mit Drillthrough-Links erstellen. Informationen über das Erstellen von zusammengesetzten Excel-Reports finden Sie unter Einen zusammengesetzten Excel-Report erstellen.



x
Syntax: Zusammengesetzte Reports anzeigen

Verwenden Sie für einen zusammengesetzten Report, der unterschiedliche Reporttypen enthalten kann, die folgende Syntax:

SET COMPOUND= {OPEN|CLOSE} [NOBREAK]

oder

ON TABLE SET COMPOUND {OPEN|CLOSE}

Beachten Sie, dass Sie, wenn Sie diese Syntax verwenden, auch den folgenden Code aufnehmen müssen, um das Anzeigeformat aller zu verknüpfender Reports zu identifizieren:

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT formatname

Falls alle Reports in der Gruppe denselben Typ haben, entweder PDF oder PS, können Sie die folgende, kürzere Syntax verwenden:

ON TABLE {PCHOLD|HOLD|SAVE} [AS name] FORMAT {PDF|PS} {OPEN|CLOSE} [NOBREAK]

Hierbei gilt:

name
Ist der Name der erzeugten Datei. Der Name wird der ersten Anfrage im zusammengesetzten Report entnommen. Wenn im ersten Report kein Name angegeben wurde, wird der Name HOLD verwendet.
OPEN
Ist im ersten Report angegeben und startet den Verkettungsprozess. Ein Report, der das OPEN-Attribut enthält, muss das Format PDF oder PS haben.
CLOSE
Ist im letzten Report angegeben und beendet den Verkettungsprozess.
NOBREAK
Ist eine optionale Phrase, die Seitenumbrüche unterdrückt. Per Default wird jeder Report auf einer separaten Seite angezeigt.

Sie können NOBREAK in einer Anfrage selektiv verwenden, um zu steuern, welche Reports auf derselben Seite angezeigt werden.

Hinweis:



Beispiel: Einen zusammengesetzten PDF-Report erstellen

Im Folgenden wird beschrieben, wie Sie drei separate PDF-Reports in einem einzigen Report vereinen, indem Sie einen zusammengesetzten Report erstellen. Beachten Sie:

Beachten Sie, dass in diesem Beispiel alle Reports auf PDF-Format eingestellt sind. Es muss jedoch, wenn Sie einen zusammengesetzten Report erstellen, nur der erste Report entweder im PDF- oder PS-Format sein. Die nachfolgenden Reports können ein beliebiges Format haben. Eine Illustration finden Sie unter Grafiken in einen zusammengesetzten Report einbetten.

Report 1:

SET PAGE-NUM=OFF
TABLE FILE CENTORD
HEADING
"Sales Report"
" "
SUM LINEPRICE
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF OPEN NOBREAK
END

Report 2:

TABLE FILE CENTORD
HEADING
"Inventory Report"
" "
SUM QUANTITY
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF NOBREAK
END

Report 3:

TABLE FILE CENTORD
HEADING
"Cost of Goods Sold Report"
" "
SUM LINE_COGS
BY PRODCAT
ON TABLE SET STYLE *
TYPE=HEADING, SIZE=18, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF CLOSE
END

Die Ausgabe wird in PDF-Format angezeigt. Da die Syntax für die Reports 1 und 2 den NOBREAK-Befehl enthalten, erscheinen die drei Reports auf einer einzigen Seite. (Ohne NOBREAK wird jeder Report auf einer separaten Seite angezeigt.)



x
Syntax: Grafiken in einen zusammengesetzten Report einbetten

Sie können eine Grafik wie ein Logo oder ein WebFOCUS-Diagramm, das als GIF-Datei gespeichert wurde, in einen zusammengesetzten Report einbetten. Die Grafikdatei muss in einen bestimmten Report in der Gruppe der zusammengesetzten Reports eingebettet sein.

Nehmen Sie die folgende Syntax in Ihre Diagrammanfrage auf, um ein Diagramm als eine Grafik zu speichern:

HOLD FORMAT GIF

Genaueres über das Speichern eines Diagramms als Bilddatei finden Sie unter Ein Diagramm erstellen.

Sie müssen, um eine Grafik in einen zusammengesetzten Report einzubetten, die Bilddatei in der StyleSheet-Deklaration des Reports identifizieren, in den Sie sie aufnehmen möchten, zusammen mit Größen- und Positionsspezifikationen, falls gewünscht. Details über das Einbetten und Positionieren von Grafiken in Reports finden Sie unter Einem Report eine Abbildung hinzufügen.



Beispiel: Reportformate und Diagramme in einem zusammengesetzten Report kombinieren

Diese Anfrage erzeugt einen zusammengesetzten Report aus drei unterschiedlichen Reporttypen (PDF, HTML und EXL2K) und bettet in jeden Report ein Diagramm ein. Beachten Sie, dass jedes Diagramm in der Diagrammanfrage als GIF-Datei gespeichert ist. Das Diagramm wird dann identifiziert, größer oder kleiner eingestellt und innerhalb der StyleSheet-Deklaration des Reports positioniert (TYPE=REPORT, IMAGE=graphname...), in den es eingebettet wird. Variationen der SET COMPOUND=-Syntax (OPEN, NOBREAK, CLOSE) kombinieren die drei Reports auf derselben Seite. Wichtige Codezeilen sind in der folgenden Anfrage markiert.

Report 1:

SET GRMERGE = ON
GRAPH FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY HOLDER
ACROSS CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS SLSGRPH1 FORMAT GIF 
END
SET COMPOUND='OPEN NOBREAK' 
TABLE FILE SHORT
SUM PROJECTED_RETURN AS 'Return on Investment'
BY CONTINENT
BY HOLDER
HEADING
"Investment Report"
" "
ON TABLE SET STYLE *
TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=SLSGRPH1.gif, POSITION=(4.5 0.5), SIZE=(3.5 2.5), $ 
ENDSTYLE 
ON TABLE PCHOLD FORMAT PDF 

END

Report 2:

GRAPH FILE TRADES
SUM AMOUNT
BY CONTINENT
ON GRAPH SET LOOKGRAPH PIE
ON GRAPH SET GRAPHEDIT SERVER 
ON GRAPH HOLD AS TRDSGR1 FORMAT GIF 
END
SET COMPOUND=NOBREAK 
TABLE FILE TRADES
SUM AMOUNT AS 'Amount'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Trades Report"
" "
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $

TYPE=HEADING, SIZE=14, STYLE=BOLD, $ 
TYPE=REPORT, IMAGE=TRDSGR1.gif, POSITION=(4 3), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT HTML 
END

Report 3:

GRAPH FILE SHORT
SUM BALANCE
BY CONTINENT
ON GRAPH SET LOOKGRAPH 3D_BAR
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET STYLE *
TYPE=DATA, COLOR=RED,$
ENDSTYLE 
ON GRAPH HOLD AS BALGR1 FORMAT GIF 
END
 
SET COMPOUND=CLOSE 
TABLE FILE SHORT
SUM BALANCE AS 'Balance'
BY CONTINENT AS 'Continent'
BY REGION AS 'Region'
HEADING
"Balance by Region"
" "
ON TABLE SET STYLE *
 TYPE=DATA, BACKCOLOR=( BY=B2 'SILVER' 'WHITE' ), $
TYPE=HEADING, SIZE=14, STYLE=BOLD, $
 
TYPE=REPORT, IMAGE=BALGR1.gif, POSITION=(4 6), SIZE=(4 2.5), $ENDSTYLE 
ON TABLE PCHOLD FORMAT EXL2K 
END

Die Ausgabe ist:


Nach oben

x
Einen zusammengesetzten Excel-Report erstellen

Referenz:

Zusammengesetzte Excel-Reports erzeugen mehrere Reports mit Arbeitsblättern unter Verwendung des EXL2K-Ausgabeformats.

Die Syntax der zusammengelegten Excel-Reports ist dieselbe, wie die Syntax von zusammengelegten PDF-Reports. Per Default wird jeder der Komponenten-Reports des zusammengelegten Reports in ein neues Excel-Arbeitsblatt platziert (ähnlich wie für eine neue Seite in PDF). Wenn das NOBREAK-Schlüsselwort verwendet wird, dann folgt der nächste Report dem aktuellen Report auf demselben Arbeitsblatt (ähnlich wie das Starten des Reports auf derselben Seite in PDF).

Die Ausgabe, egal ob sie zum Client mit PCHOLD gesendet oder in einer Datei mit HOLD gespeichert wurde, wird im Web Archive-Format von Microsoft erzeugt. Dieses Format wird 'Webseite in einer Datei' in der Speichern als-Excel-Dialogbox genannt. Excel fügt die üblichen Datei-Suffixe hinzu: .mht oder .mhtml. WebFOCUS verwendet denselben .xht-Suffix, der für EXL2K-Reports verwendet wird. Da die Ausgabe immer eine einzelne Datei ist, kann sie auf einfache Weise mit ReportCaster verteilt werden.

Die Komponenten eines zusammengesetzten Excel-Reports können FORMULA- oder PIVOT-Reports sein (gemäß den Richtlinien). Sie können keine Inhaltsverzeichnis-Reports (TOC) sein.

Hinweis: Es muss Excel 2002 (Office XP) oder eine neuere Version installiert sein. Zusammengelegte Excel-Reports können nicht mit früheren Ausgaben von Excel verwendet werden, da sie nicht das Webarchiv-Dateiformat unterstützen.



x
Referenz: Richtlinien für die Verwendung der Schlüsselwörter OPEN, CLOSE und NOBREAK sowie SET COMPOUND

Die Schlüsselwörter OPEN, CLOSE und NOBREAK werden wie bei PDF verwendet, um zusammengesetzte Reports zu steuern. Sie können mit dem HOLD- oder PCHOLD-Befehl oder mit einem separaten SET COMPOUND-Befehl spezifiziert werden.

  • OPEN wird im ersten Report einer Reihe zusammengesetzter Reports verwendet, um anzugeben, dass ein zusammengesetzter Report erzeugt werden soll.
  • CLOSE wird verwendet, um den letzten Report in einem zusammengesetzten Report zu bestimmen.
  • NOBREAK gibt an, dass der nächste Report in dasselbe Arbeitsblatt platziert wird wie der erste Report . Falls dies nicht vorhanden ist, wird der nächste Report per Default in ein separates Arbeitsblatt platziert.

    NOBREAK kann mit OPEN im ersten Report oder alleine in einem Report zwischem dem ersten und dem letzten Report angezeigt werden. (Die Verwendung von CLOSE ist nicht relevant, da es sich auf die Platzierung des nächsten Reports bezieht und dem letzten Report kein Report folgt, in dem CLOSE auftaucht.)

  • Die Schlüsselwörter des zusammengelegten Reports OPEN, CLOSE und NOBREAK müssen in Verbindung mit der HOLD/PCHOLD-Syntax direkt nach FORMAT EXL2K und vor jedem zusätzlichen Schlüsselwort wie z. B. FORMULA oder PIVOT erscheinen. Sie können beispielsweise Folgendes angeben:
    • ON TABLE PCHOLD FORMAT EXL2K OPEN
    • ON TABLE HOLD AS MYHOLD FORMAT EXL2K OPEN NOBREAK
    • ON TABLE PCHOLD FORMAT EXL2K NOBREAK FORMULA
    • ON TABLE HOLD FORMAT EXL2K CLOSE PIVOT PAGEFIELDS COUNTRY
  • Wie bei zusammengesetzten PDF-Reports können Schlüsselwörter zusammengesetzter Reports alternativ mit SET COMPOUND angegeben werden:
    • SET COMPOUND = OPEN
    • SET COMPOUND = 'OPEN NOBREAK'
    • SET COMPOUND = NOBREAK
    • SET COMPOUND = CLOSE


x
Referenz: Richtlinien für das Erstellen von zusammengesetzten Excel-Reports
  • PivotTables und NOBREAK. Pivot-Tabellen-Reports können in zusammengesetzten Reports auftauchen. Sie können aber nicht mit einem anderen Report im selben Arbeitsblatt mit NOBREAK kombiniert werden.
  • Benennung der Arbeitsblätter. Per Default lauten die Arbeitsblatt-Tab-Namen Sheet1, Sheet2 usw. Sie haben die Option einen anderen Tab-Namen für das Arbeitsblatt anzugeben, indem Sie das TITLETEXT-Schlüsselwort im StyleSheet verwenden. Beispiel:
    TYPE=REPORT, TITLETEXT='Summary Report', $

    Excel beschränkt die Länge von Arbeitsblatttiteln auf 31 Zeichen. Die folgenden Sonderzeichen können nicht verwendet werden: ':', '?', '*' und '/'.

  • Dateinamen und -formate Der Dateiname der Ausgabe (AS-Name oder HOLD per Default) wird vom ersten Report des zusammengesetzten Reports genommen (der Report mit dem OPEN-Schlüsselwort). Dateinamen für die Ausgabe von nachfolgenden Reports werden ignoriert.

    Die HOLD FORMAT-Syntax, die im ersten Komponenten-Report eines zusammengesetzten Reports verwendet worden ist, gilt für alle nachfolgenden Reports im zusammengesetzten Report, egal welches Format sie besitzen.

  • Verhalten von NOBREAK. Wenn NOBREAK angegeben wurde, wird der jeweils nachfolgende Report direkt in der Zeile nach der letzten Zeile des Report mit NOBREAK angezeigt. Wenn zusätzliche Leerstellen zwischen den Reports benötigt werden, kann ein FOOTING- oder ein ON TABLE SUBFOOT-Befehl mit NOBREAK in den Report platziert werden. Es kann auch ein HEADING- oder ein ON TABLE SUHEAD-Befehl in den folgenden Report platziert werden. Dies ermöglicht die größte Flexibilität, da Leerzeilen, die automatisch hinzugefügt würden, nicht entfernt werden könnten.


Beispiel: Einen einfachen zusammengesetzten Report mit EXL2K erstellen
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
SUM SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS EX1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
SUM RC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
SUM DC
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD FORMAT EXL2K CLOSE
END

Die Ausgaben für die Tabs im Excel-Arbeitsblatt sind:



Beispiel: Einen zusammengesetzten Report mit PivotTables und Formeln erstellen
SET PAGE-NUM=OFF
TABLE FILE CAR
HEADING
"Sales Report"
" "
PRINT RCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Sales Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PIV1 FORMAT EXL2K OPEN
END
TABLE FILE CAR
HEADING
"Inventory Report"
" "
PRINT SALES
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Inv. Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS PPPP FORMAT EXL2K PIVOT
PAGEFIELDS TYPE SEATS
CACHEFIELDS MODEL MPG RPM 
END
TABLE FILE CAR
SUM RCOST
BY COUNTRY BY CAR BY MODEL BY TYPE BY SEATS SUMMARIZE
ON MODEL SUB-TOTAL
ON TABLE HOLD AS XFOCB FORMAT EXL2K FORMULA
END
TABLE FILE CAR
HEADING
"Cost of Goods Sold Report"
" "
PRINT DCOST
BY COUNTRY
ON TABLE SET STYLE *
type=report, titletext='Cost Rpt', $
type=heading, size=18, $
ENDSTYLE
ON TABLE HOLD AS ONE FORMAT EXL2K CLOSE PIVOT
PAGEFIELDS RCOST
CACHEFIELDS MODEL TYPE SALES ACCEL SEATS
END

Die Ausgaben für die Tabs im Excel-Arbeitsblatt sind:



Beispiel: Einen zusammengesetzten Report mit NOBREAK erstellen

In diesem Beispiel befinden sich die ersten zwei Reports auf dem ersten Arbeitsblatt und die letzten zwei Reports auf dem zweiten Arbeitsblatt, da NOBREAK sowohl im ersten als auch dem dritten Report auftaucht.

TABLE FILE GGSALES
HEADING
"Report 1: Coffee - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K OPEN NOBREAK
ON TABLE SET STYLE *
type=report, font=Arial, size = 10, style=normal, $
type=title, style=bold, $
type=heading,   size=12, style=bold, color=blue, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 2: Coffee - Actual "
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Coffee
ON TABLE PCHOLD FORMAT EXL2K
ON TABLE SET STYLE *
type=report, font=Arial, size=10, style=normal, $
type=grandtotal,  style=bold, $
type=heading,  size=12, style=bold, color=blue, $
END
TABLE FILE GGSALES
HEADING
"Report 3: Food - Budget"
SUM BUDDOLLARS BUDUNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K NOBREAK
ON TABLE SET STYLE *
type=REPORT, font=Arial, size=10, style=normal, $
type=HEADING,  style=bold, size=12, color=blue, $
type=title, style=bold, $
type=grandtotal,  style=bold,  $
END
TABLE FILE GGSALES
HEADING
" "
"Report 4: Food - Actual"
SUM DOLLARS UNITS COLUMN-TOTAL AS 'Total'
BY REGION 
IF CATEGORY EQ Food
ON TABLE PCHOLD FORMAT EXL2K CLOSE
ON TABLE SET STYLE *
type=report, font=Arial, size=10,  $
type=title, style=bold, $
type=heading,size=12, style=bold,  color=blue,$
type=grandtotal, style=bold,  $
END

Die Ausgabe ist:


WebFOCUS