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:
Es wird in einem koordinierten zusammengesetzten Layout-Report, wenn wenigstens eine Komponente Daten für einen bestimmten Sortierfeldwert enthält, eine Seite für diesen Wert erzeugt, obwohl es sein kann, dass manche der Komponenten fehlen. Weitere Informationen über koordinierte zusammengesetzte Layout-Reports mit fehlenden Daten finden Sie unter Koordinierte zusammengesetzte Layout-Reports mit fehlenden Daten.
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.
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.
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:
Hinweis: LAYOUT=ON ist derzeit die einzige zutreffende Option.
Hinweis: Der Defaultwert ist OFF.
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.
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:
Hinweis: Syntax ist erforderlich, selbst wenn der Report nur eine einzige Seite enthält.
PAGELAYOUT=1, $
PAGELAYOUT=ALL, $
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:
Beispielsweise zeigt der folgende Report keine Daten an:
SET COMPONENT='DfltCmpt1' TABLE FILE SYSCOLUM SUM TBNAME NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
SET COMPONENT='DfltCmpt1' TABLE FILE GGSALES SUM UNITS NOPRINT BY PCD NOPRINT IF READLIMIT EQ 1 ON TABLE SET PREVIEW ON ON TABLE SET PAGE-NUM NOLEAD END
Beachten Sie, dass für die Erstellung eines Designs mit sich wiederholendem Text und Bildern auf einer Masterseite empfohlen wird, dass Sie Zeichnungsobjekte auf die Masterseite platzieren. Weitere Informationen finden Sie unter Objekte mit Document Composer-Syntax zeichnen.
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:
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.
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.
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 = (* *).
Hinweis: Die doppelten Klammern sind erforderlich.
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:
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:
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:
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:
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.
OBJECT=LINE, POSITION=(x1 y1), ENDPOINT=(x2 y2), [BORDER=b,] [BORDER-COLOR=c,] [BORDER-STYLE=s,]$
Optional folgen die Randattribute BORDER, BORDER-COLOR und BORDER-STYLE der vorhandenen BORDER-Syntax, wie es nachfolgend zu sehen ist:
OBJECT=LINE, POSITION=(1 1), ENDPOINT=(8 1), BORDER=HEAVY, BORDER-COLOR=RED, BORDER-STYLE=DASHED, $
OBJECT=BOX, POSITION=(x y), DIMENSION=(xdim ydim), BACKCOLOR=c, [BORDER=b,] [BORDER-COLOR=bc,] [BORDER-STYLE=bs,] $
Tipp: Die Hintergrundfarbe, welche c ist, gibt die Farbe an, mit der die Box gefüllt wird, und kann jede beliebige gültige Farbe sein. Beispielsweise gelb oder RGB(200 200 200).
Es können wie bei der BORDER-Syntax die einzelnen Seiten der Box separat gestylt werden. Beispiel:
OBJECT=BOX, POSITION=(1 1), DIMENSION=(2 3), BACKCOLOR=YELLOW, BORDER=HEAVY, BORDER-TOP-COLOR=RED, BORDER-BOTTOM-COLOR=BLUE, $
Beachten Sie, dass, wie in der BORDER-Syntax, Attribute von Linien oder Boxen, die nicht spezifisch angegeben wurde, die folgenden Defaults haben:
Sie können den Text, der im Textobjekt angezeigt wird, formatieren, indem Sie Markup-Tags im Text des Textobjekts verwenden. Ein Report mit Markup-Tags in einem Textobjekt wird Markup-Report genannt. Ein Markup-Report kann als PDF-, DHTML- oder PPT-Ausgabedatei erzeugt werden. WebFOCUS unterstützt einen Teil der HTML-Tags und seine eigenen Nummerierungs-Tags. Fügen Sie dem Zeichenfolge-Objekt das MARKUP=ON-Attribut hinzu, um diese Markup-Tags zu aktivieren (so dass sie als Formatierungselemente behandelt und nicht als Text angezeigt werden). Weitere Informationen finden Sie unter Textformatierung-Markup-Tags für ein Textobjekt.
Geben Sie die folgende Syntax ein, um eine statische Zeichenfolge an der Position (x y) abzubilden:
OBJECT=STRING, POSITION=(X Y), TEXT='any text you like', [MARKUP={ON|OFF},] [FONT=f,] [SIZE=sz,] [STYLE=st,] [COLOR=c,] [WRAP=ON, DIMENSION=(xdim ydim),] [LINESPACING=linesoption ,] $
Hierbei gilt:
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.
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.
LINESPACING={SINGLE|1.5LINES|DOUBLE}
oder
LINESPACING=type(value)
Hierbei gilt:
Type | Wert | Beispiel |
---|---|---|
MULTIPLE | Der Prozentsatz, um den der Zeilenabstand vergrößert oder verringert werden soll. | LINESPACING=MULTIPLE(1.2) vergrößert den Zeilenabstand um 20 Prozent. |
MIN | Der minimale Zeilenabstand (in der Einheit, die durch den UNITS-Parameter angegeben ist), der benötigt wird, um die größte Schriftart in der Zeile unterzubringen. | LINESPACING=MIN(0.5) bietet einen minimalen Zeilenabstand von 0,5 Zoll, wenn UNITS=IN ist. |
EXACT | Der festgelegte Zeilenabstand (in der Einheit, die durch den UNITS-Parameter angegeben ist), den WebFOCUS nicht anpasst. | LINESPACING=EXACT(.3) bietet einen festgelegten Zeilenabstand von 0,3 Zoll, wenn UNITS=IN ist. |
Sie können optional die Attribute FONT, SIZE, STYLE und COLOR angeben, wie Sie es für jedes andere Textobjekt in einem Report tun würden. Beispiel:
OBJECT=STRING, POSITION=(1 1), TEXT='Hello world!', FONT=TIMES, SIZE=12, STYLE=BOLD, COLOR=RED, $
Hinweis: Die Position einer Zeichenfolge wird von unten links gemessen, um zu ermöglichen, dass Zeichenfolgen mit unterschiedlichen Höhen auf einer gemeinsamen Grundlinie ausgerichtet werden. Wenn jedoch WRAP=ON eingestellt ist, gibt dies an, dass die Zeichenfolge in einer umgebenden Box umgebrochen werden soll, deren obere linke Ecke sich auf (x y) befindet und deren Dimensionen (xdim ydim) sind. In diesem Fall wird die obere Linke Ecke der Zeichenfolge auf den Punkt (x y) positioniert.
OBJECT=IMAGE, IMAGE=file, POSITION=(x y), DIMENSION=(xdim ydim), $
Hinweis: Die Bilddatei name=file kann jede Bilddatei sein, die in einem PDF-Report gültig ist. POSITION wird wie mit einer konventionellen Bilddatei verwendet, und DIMENSION wird anstelle des SIZE-Attributs einer konventionellen Bilddatei verwendet.
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.
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
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.
Linksausrichtung:
<left>text</left>
Rechtsausrichtung:
<right>text</right>
Zentrierte Ausrichtung:
<center>text</center>
Vollausrichtung:
<full>text</full>
Ausrichtung oben:
<top>text</top>
Ausrichtung Mitte:
<mid>text</mid>
Ausrichtung unten:
<bottom>text</bottom>
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:
Ist der Hyperlink, zu dem gesprungen wird, wenn auf den Text geklickt wird.
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:
Wenn kein spezifisches Styling des Textobjekts erforderlich ist, fügen Sie keine Markup-Tags ein, und stellen Sie MARKUP=OFF ein.
MARKUP=OFF, TEXT='Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report', $
Folgendes wird angezeigt
Page 1 of 100 of Sales Report
Wenn ein besonderes Styling des Textobjekts erforderlich ist, müssen Sie MARKUP=ON einstellen. Wenn MARKUP=ON, stellen Sie WRAP=OFF ein und platzieren Sie keine Styling-Tags zwischen die Seitenzahlvariablen innerhalb der Zeichenfolge. Es können Tags verwendet werden um die vollständigen Seite n von m-Zeichenfolge. Der folgende Code erzeugt eine Seitenzahlzeichenfolge ohne die zusätzlichen Leerstellen:
MARKUP=ON, WRAP=OFF, TEXT='<font face="ARIAL" size=10><i>Page <ibi-page-number/> of <ibi-total-pages/> of Sales Report </i>', $
Folgendes wird angezeigt
Fügen Sie, um ein Datum in der Reportausgabe anzuzeigen, eine WebFOCUS-Datumsvariable in ein Textobjekt auf der Masterseite (wie &DATEtrMDYY) ein.
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:
‘This paragraph is triple-spaced (LINESPACING=MULTIPLE(3)):’
Markup für diese Formatierung ist:
<b><font face="Arial" size=12>This paragraph is triple-spaced (LINESPACING=MULTIPLE(3)):</font></b>
Beachten Sie jedoch, dass die Größe des Bildes angepasst wurde, so dass es auf die Seite passt, wodurch die Schrift kleiner erscheinen kann:
<full>Our ... </full>
<i>primary</I>
Die Ausgabe ist:
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:
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:
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.
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.
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
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
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:
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.
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.
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:
Komponenteneinträge
COMPONENT=component1, TITLE='title1', TOC-LEVEL=n, [BYTOC=m,] POSITION=(xy),DIMENSION=(ab), $
Hierbei gilt:
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.
Allgemeine Hinweise
BYTOC-Hinweise
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:
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.
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:
Sie können NOBREAK in einer Anfrage selektiv verwenden, um zu steuern, welche Reports auf derselben Seite angezeigt werden.
Hinweis:
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.)
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.
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:
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.
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.
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.)
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 '/'.
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.
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:
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:
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 |