Sie können Reportinformationen horizontal sortieren, indem Sie die ACROSS-Phrase verwenden. Dies erzeugt Spalten in Ihrem Report. Die Gesamtzahl der ACROSS-Spalten ist gleich der Gesamtanzahl der ACROSS-Sortierfeldwerte multipliziert mit der Gesamtanzahl der angezeigten Felder.
Eine Anfrage kann bis zu 128 Sortierphrasen enthalten, die eine beliebige Kombination von BY- und ACROSS-Phrasen sein können.
Es sind pro ACROSS-Phrase maximal 1.151 Spalten erlaubt, was nur mit einer einzelnen ACROSS-Phrase möglich ist. Diese Begrenzung basiert auf der Anzahl der Spalten, die in einer Anfrage maximal erlaubt sind. Im Fall von ACROSS sind es 1.024 Spalten, plus maximal 127 Sortierspalten. Die Gesamtzahl der ACROSS-Spalten ist gleich der Gesamtanzahl der ACROSS-Sortierfeldwerte multipliziert mit der Gesamtanzahl der angezeigten Felder.
Die maximale Anzahl der Anzeigefelder, die Ihr Report enhalten kann, hängt von mehreren Faktoren ab. Im Allgemeinen können Sie, wenn ein horizontales (ACROSS) Sortierfeld viele Datenwerte enthält, die für Reports erlaubte Breite überschreiten, oder einen Report erstellen, der schwierig zu lesen ist. Details finden Sie in Reportdaten anzeigen.
Sie können Spaltensummen oder Zusammenfassungen für ACROSS-Sortierfeldwerte mit ACROSS-TOTAL, SUBTOTAL, SUB-TOTAL, RECOMPUTE und SUMMARIZE erzeugen. Genaueres finden Sie unter Summen und Zwischensummen aufnehmen.
PRINT LAST_NAME ACROSS DEPARTMENT
MIS einmal, gefolgt von sechs Angestelltennamen.
Im Folgenden wird beschrieben, wie Sie die Gesamtgehaltskosten für jede Abteilung anzeigen. Diese Anfrage wird mit einer ACROSS-Phrase horizontal sortiert.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT END
Die Ausgabe ist:
DEPARTMENT MIS PRODUCTION --------------------------------- $108,002.00 $114,282.00
Beachten Sie, dass die horizontale Sortierung eine Spalte für jedes Sortierfeld (Abteilung) anzeigt.
Vorgehensweise: |
Sie können mit dem Befehl SET ACRSVRBTITL die Anzeige von ACROSS-Spaltentiteln steuern, wenn ein Feld für eine ACROSS-Gruppe angezeigt wird. Die Feldzählung, die bestimmt, ob der ACROSS-Titel angezeigt wird, wird beeinträchtigt von bestimmten Komponenten in der Reportanfrage, wie z. B. berechnete Felder oder Felder in Kopfzeilen.
SET-Befehle, die Unterstriche mit Titeln ausrichten, den Platz zwischen Spalten anpassen oder nicht aufgefüllte ACROSS-Spalten von der Seite entfernen wirken sich nicht auf die Ausgabe aus. Die Größe des Titels und die Anzahl der Zeilen, die er beansprucht, wirken sich auch nicht auf die Ausgabe aus.
SET ACRSVRBTITL = {OFF|ON|HIDEONE}
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}
Hierbei gilt:
Unterdrückt den Titel, wenn es nur ein Anzeigefeld gibt. OFF ist der Defaultwert.
Zeigt den Titel an, wenn es nur ein Anzeigefeld gibt.
Unterdrückt den Titel, wenn es nur ein Anzeigefeld gibt, aber die Anfrage enthält einen oder mehrere der folgenden Komponenten.
Die folgende Anfrage mit der Datenquelle GGSALES enthält ein Anzeigefeld (DOLLARS). Der Parameter ACRSVRBTITL ist OFF:
SET ACRSVRBTITL=OFF TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
Es gibt in der Ausgabe keinen Spaltentitel, der beschreibt, was die Zahl in der jeweiligen Spalte darstellt:
Region Midwest Northeast Southeast West ---------------------------------------------------- 11514345 11494543 11781285 11674908
Die folgende Anfrage ist gleich mit ACRSVRBTITL=ON:
SET ACRSVRBTITL=ON TABLE FILE GGSALES SUM DOLLARS AS Sales ACROSS REGION ON TABLE SET PAGE NOPAGE ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
In der Ausgabe wird der Titel Sales über jedem Feldwert in der ACROSS-Gruppe angezeigt:
Region Midwest Northeast Southeast West Sales Sales Sales Sales ---------------------------------------------------- 11514345 11494543 11781285 11674908
Die folgende Anfrage mit der GGSALES-Datenquelle hat ein Anzeigefeld in der Kopfzeile:
SET ACRSVRBTITL=OFF TABLE FILE GGSALES HEADING "Sales Report for <CATEGORY with ACRSVRBTITL=OFF" " " SUM DOLLARS AS Sales BY CATEGORY ACROSS REGION WHERE CATEGORY EQ 'Food' ON TABLE SET PAGE NOPAGE END
Mit der Einstellung ACRSVRBTITL=OFF zählt das Feld in der Kopfzeile und der ACROSS-Titel Sales wird nicht unterdrückt:
Sales Report for Food with ACRSVRBTITL=OFF Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Wenn Sie ACRSVRBTITL in ON ändern, wird derselbe Report erzeugt:
Sales Report for Food with ACRSVRBTITL=ON Region Midwest Northeast Southeast West Category Sales Sales Sales Sales ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Wenn Sie ACRSVRBTITL in HIDEONE ändern, wird der ACROSS-Titel Sales unterdrückt:
Sales Report for Food with ACRSVRBTITL=HIDEONE Region Midwest Northeast Southeast West Category ------------------------------------------------------------- Food 4404483 4445197 4308731 4204333
Vorgehensweise: Referenz: |
In einem Report, der die ACROSS-Sortierphrase verwendet, um Werte horizontal auf einer Seite zu sortieren, werden per Default zwei Zeilen in der Reportausgabe für die ACROSS-Spalten erzeugt. Die erste Zeile zeigt den Namen des Sortierfeldes (ACROSS-Titel) an, und die zweite Zeile zeigt die Werte für dieses Sortierfeld (ACROSS-Wert) an. Der ACROSS-Feldname ist über dem ersten ACROSS-Wert linksbündig ausgerichtet.
Wenn Sie sowohl den ACROSS-Titel als auch die ACROSS-Werte auf einer Zeile in PDF-, HTML-, EXL2K- oder EXL07-Reportausgabe anzeigen möchten, können Sie den Befehl SET ACROSSTITLE = SIDE ausgeben. Dieser Befehl platziert die ACROSS-Titel links neben die ACROSS-Werte. Per Default sind die Titel rechtsbündig ausgerichtet im Bereich über den BY-Feldtiteln. Sie können die Ausrichtung des ACROSS-Titels ändern, indem Sie das Attribut JUSTIFY der StyleSheet-Deklaration für die ACROSSTITLE-Komponente hinzufügen. Wenn es keine BY-Felder gibt, wird die Kopfzeile, die per Default erstellt wird, um den ACROSS-Titel anzuzeigen, nicht erzeugt.
Dieses Feature ist gedacht für Anfragen, die sowohl ACROSS- als auch BY-Felder haben. Für Anfragen mit ACROSS-Feldern aber keinen BY-Feldern, wird der eingestellte Befehl ignoriert, und die ACROSS-Titel werden nicht verschoben.
Beachten Sie, dass Sie für bestimmte Ausgabeformate steuern können, ob Spaltentitel unterstrichen sind, indem Sie den SET TITLELINE-Befehl verwenden. SET ACROSSLINE ist ein Synonym für SET TITLELINE. Informationen finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden.
SET ACROSSTITLE = {ABOVE|SIDE}
Hierbei gilt:
Zeigt ACROSS-Titel über ihren ACROSS-Werten an. ABOVE ist der Defaultwert.
Zeigt ACROSS-Titel links neben ihren ACROSS-Werten an, über den BY-Spalten.
Das folgende Beispiel mit der GGSALES-Datenquelle hat zwei ACROSS-Sortierfelder (CATEGORY und PRODUCT). SET ACROSSTITLE=SIDE verscheibt den ACROSS-Titel links neben die ACROSS-Werte. Mit BYPANEL=ON werden die ACROSS-Titel auf jedem nachfolgenden Panel an derselben Stelle wiederholt.
SET ACROSSTITLE=SIDE SET BYPANEL=ON TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, BORDER=LIGHT, $ TYPE=ACROSSVALUE, WRAP=ON, $ ENDSTYLE END
Der ACROSS-Titel Kategorie wird links neben den ACROSS-Werten Kaffee, Essen und Geschenke angezeigt. Der ACROSS-Titel Produkt wird links neben den ACROSS-Werten Espresso, Latte, Biscotti usw. angezeigt. Die ACROSS-Titel sind rechtsbündig ausgerichtet über dem Bereich, den die BY-Feldnamen Region, Staat und Stadt einnehmen. Beachten Sie, dass der ACROSS-Wert Croissant auf eine zweite Zeile umbricht, und der ACROSS-Titel mit der obersten Zeile ausgerichtet ist. Folgendes zeigt das Panel 1:
Folgendes zeigt das Panel 2:
Das folgende Beispiel mit der GGSALES-Datenquelle hat zwei BY-Felder und zwei ACROSS-Felder. Dieses Beispiel aktiviert Ränder nicht und ermöglicht den Umbruch der ACROSS-Werte nicht. SET ACROSSTITLE=SIDE verscheibt den ACROSS-Titel links neben die ACROSS-Werte. Der Befehl SET BYPANEL=1 wiederholt nur das erste BY-Feld auf dem zweiten Panel. Um zu verhindern, dass die ACROSS-Titel abgeschnitten werden, um über das BY-Feld auf dem zweiten Panel zu passen, hat das erste BY-Feld einen AS-Namen, der länger ist, als der Defaultname:
SET ACROSSTITLE=SIDE SET BYPANEL=1 TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY ST AS 'State Code' BY CITY ACROSS CATEGORY AS 'Categories' ACROSS PRODUCT AS 'Products' WHERE PRODUCT NE 'Capuccino'; ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, FONT='ARIAL', SIZE=10, $ ENDSTYLE END
Das erste Panel folgt:
Aufgrund des SET BYPANEL=1-Befehls ist der Platz, der über den BY-Feldern auf dem zweiten Panel verfügbar ist, kleiner als der Platz auf dem ursprünglichen Panel. Der AS-Name Staatencode fügt Platz für die ACROSS-Titel hinzu, so dass die Titel auf dem zweiten Panel nicht abgeschnitten werden:
Die folgende Anfrage mit der GGSALES-Datenquelle platziert die ACROSS-Titel neben die ACROSS-Werte und stellt übereinstimmendes Styling von Schriftfarbe und Hintergrundfarbe für die ACROSSTITLES, ACROSSVALUES und Spaltentitel auf weißen Text auf grauem Hintergrund ein.
SET ACROSSTITLE=SIDE TABLE FILE GGSALES SUM DOLLARS/I8M AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE CATEGORY EQ 'Coffee' OR 'Food'; ON TABLE SET PAGE-NUM NOPAGE ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * SQUEEZE=ON,UNITS=IN,ORIENTATION=PORTRAIT,$ TYPE=REPORT,FONT='ARIAL',SIZE=10,BORDER=LIGHT,$ TYPE=ACROSSTITLE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=ACROSSVALUE,COLOR=WHITE, BACKCOLOR=GREY,$ TYPE=TITLE,COLOR=WHITE, BACKCOLOR=GREY,$ ENDSTYLE END
Die Ausgabe hat einen grauen Hintergrund und weißen Text für die ACROSS-Titel, ACROSS-Werte und Spaltentitel.
Sie können einen Report mit mehr als einem Sortierfeld sortieren. Wenn mehrere Sortierfelder verwendet werden, bestimmt die Reihenfolge der ACROSS-Phrase die Sortierreihenfolge. Die erste ACROSS-Phrase stellt den ersten Sortierumbruch ein, die zweite ACROSS-Phrase stellt den zweiten Sortierumbruch ein, etc. Jede nachfolgende Sortierung ist in die vorherige eingebettet.
Die folgende Anfrage sortiert die Summe aktueller Gehälter, erst nach Abteilung und dann nach Jobcode.
TABLE FILE EMPLOYEE SUM CURR_SAL ACROSS DEPARTMENT ACROSS CURR_JOBCODE WHERE CURR_SAL GT 21500 END
Die Ausgabe ist:
DEPARTMENT MIS PRODUCTION CURR_JOBCODE A17 B04 A15 A17 ------------------------------------------------------------------------ $27,062.00 $21,780.00 $26,862.00 $29,700.00
Vorgehensweise: Referenz: |
Der PRINT-Befehl erzeugt einen Report, der für jeden aus der Datenquelle abgerufenen Datensatz eine einzelne Zeile hat, nachdem diejenigen herausgefiltert werden, die IF- oder WHERE-Tests nicht bestehen. Wenn PRINT zusammen mit einer ACROSS-Phrase verwendet wird, können viele der erzeugten Spalten leer sein. Diese Spalten zeigen das Symbol für fehlende Daten an.
Um zu verhindern, dass ein solch karger Report gedruckt wird, können Sie den Befehl SET ACROSSPRT verwenden, um die Zeilen im Report zu komprimieren. Die Anzahl der Zeilen innerhalb jeder Sortiergruppe wird reduziert, indem nicht fehlende Werte aus unteren Zeilen mit fehlenden Werten aus oberen Zeilen getauscht werden, und dann alle Zeilen entfernt werden, deren Spalten alle fehlende Werte haben.
Da Daten in andere Reportzeilen verschoben werden können, sind zeilenbasierte Berechnungen wie ROW-TOTAL und ACROSS-TOTAL in einem komprimierten Report anders als in einem nicht komprimierten Report. Die Komprimierung von Reportzeilen wirkt sich nicht auf Spaltenberechnungen aus.
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}
Hierbei gilt:
Komprimiert Reportzeilen nicht. NORMAL ist der Defaultwert.
Komprimiert Reportzeilen, indem Datenwerte nach oben verschoben werden, um fehlende Werte in einer Sortiergruppe zu ersetzen.
Die folgende Anfrage mit der GGSALES-Datenquelle druckt Stückabsatz nach Produkt in Region:
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT NORMAL
ON TABLE SET PAGE NOPAGE
END
Jede Zeile des Reports steht für einen Verkauf in einer Region, so dass höchstens eine Spalte in jeder Zeile einen nicht fehlenden Wert hat, wenn ACROSSPRT auf NORMAL eingestellt ist.
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ----------------------------------------------------------------- Capuccino . 936 . . . 116 . . . 136 . . . . 1616 . . . 1118 . . . 774 . . . . 1696 . . . 1519 . . . 836 Espresso 1333 . . . 280 . . . 139 . . . . 1363 . . . 634 . . . 406 . . . . 1028 . . . 1014 . . . 885 . . . . 1782 . . . 1399 . . . 551
Wenn Sie ACROSSPRT auf COMPRESS einstellen, werden nicht fehlende Werte nach oben verschoben, um fehlende Werte in derselben BY-Gruppe zu ersetzen, und es werden dann die Zeilen eliminiert, die nur fehlende Werte enthalten.
TABLE FILE GGSALES
PRINT UNITS/I5
BY PRODUCT
ACROSS REGION
WHERE DATE FROM '19971201' TO '19971231';
WHERE PRODUCT EQ 'Capuccino' OR 'Espresso';
ON TABLE SET ACROSSPRT COMPRESS
ON TABLE SET PAGE NOPAGE
END
Die Ausgabe ist:
Region Midwest Northeast Southeast West Product Unit Sales Unit Sales Unit Sales Unit Sales ---------------------------------------------------------------- Capuccino . 936 1616 1696 . 116 1118 1519 . 136 774 836 Espresso 1333 1363 1028 1782 280 634 1014 1399 139 406 885 551
Reportanfragen, die die Sortierphrase ACROSS verwenden, erzeugen eine Spaltengruppe (eine für jedes Anzeigefeld in der Anfrage) unter jedem Wert des ACROSS-Feldes. In vielen Fällen haben manche dieser Spalten nur fehlende oder Nullwerte. Sie können den Parameter HIDENULLACRS verwenden, um die Anzeige von ACROSS-Gruppen zu verbergen, die nur Nullspalten enthalten in gestylten Ausgabeformaten. Wenn ein BY-Feld mit einer PAGE-BREAK-Option vorhanden ist, werden Spalten auf jeder Seite in der Ausgabe von dieser PAGE-BREAK-Option erzeugt. Wenn die Anfrage keine BY-Seitenumbrüche enthält, werden ACROSS-Gruppen, die für den gesamten Report fehlen, verborgen.
Null-ACROSS-Spalten verbergen wird für alle Ausgabeformate für Reports mit Styling unterstützt, mit Ausnahme der Optionen EXL2K PIVOT und EXL2K FORMULA. Wird für Active-Technologien nicht unterstützt.
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}
Hierbei gilt:
Verbirgt Spalten mit fehlenden Daten in ACROSS-Gruppen innerhalb eines von BY erzeugten Seitenumbruchs.
Verbirgt Spalten nicht. OFF ist der Defaultwert.
Das Verbergen von Nullspalten ist am sinnvollsten, wenn ein BY-Sortierfeld die PAGE-BREAK-Option hat, entweder in der BY-Phrase selbst oder in einer ON-Phrase. Die Wertänderung des BY-Feldes bestimmt, wann für dieses BY-Feld ein Seitenumbruch erzeugt wird. Die Änderung des BY-Feldwerts definiert die Grenzwerte, innerhalb derer die ACROSS-Spalten verborgen werden, selbst wenn sich der BY-Feldwert über mehrere Seiten erstreckt.
Es ist nicht möglich, diese Einstellung nur für ein bestimmtes BY-Feld einzustellen. Wenn in der Anfrage also mehrere BY-Felder mit Seitenumbrüchen vorhanden sind, trifft die Einstellung auf sie alle zu. Wenn keine BY-Felder mit Seitenumbrüchen vorhanden sind, muss eine ACROSS-Spalte für den gesamten Report fehlen, um verborgen zu werden.
Die gesamte ACROSS-Gruppe wird verborgen, wenn entweder der ACROSS-Wert fehlt, oder wenn alle Zeilen für alle Anzeigespalten unter diesem ACROSS-Wert Nullwerte oder fehlende Werte im gegebenen BY-Wert enthalten.
Die Seiten, die für einen BY-Feldwert mit einem Seitenumbruch erzeugt werden, werden verborgen, wenn alle ACROSS-Gruppen innerhalb dieses BY-Feldwerts verborgen sind.
Wenn Spalten aus einer Seite oder einem Panel entfernt werden, werden die vorhandenen Spalten umpositioniert, um den freien Platz aufzufüllen.
Die folgende Anfrage mit der GGSALES-Datenquelle hat einen Seitenumbruch beim BY-Feld namens REGION und eine ACROSS-Phrase beim CITY-Feld. Die Anzeigefelder in jeder ACROSS-Gruppe sind UNITS und DOLLARS:
SET HIDENULLACRS=OFF TABLE FILE GGSALES SUM UNITS DOLLARS BY REGION PAGE-BREAK BY ST ACROSS CITY WHERE CITY LE 'Memphis' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * TYPE=REPORT, FONT=ARIAL, SIZE=9,$ ENDSTYLE END
Es werden mit SET HIDENULLACRS=OFF alle Spalten angezeigt:
Wenn Sie die Anfrage mit SET HIDENULLACRS=ON ausführen, werden die ACROSS-Gruppen für Städte mit fehlenden Daten in jeder Region eliminiert. Beispielsweise hat die Region Mittlerer Westen keine Spalten für Atlanta oder Boston:
In der folgenden Anfrage mit der GGSALES-Datenquelle ist REGION ein BY-Feld mit einem PAGE-BREAK und PRODUCT ist das ACROSS-Feld. Der DEFINE-Befehl erstellt ein Feld namens SHOWDOLLARS, das fehlende Werte für die Spalte Espresso in der ACROSS-Gruppe Kaffee hat:
SET HIDENULLACRS=OFF SET BYPANEL=2 DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES HEADING "Page <TABPAGENO " SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' WHERE CATEGORY EQ 'Coffee'; ON REGION PAGE-BREAK ON TABLE SET PAGE-NUM ON ON TABLE NOTOTAL ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
Wenn Sie die Anfrage mit SET HIDENULLACRS=OFF ausführen, wird die Spalte Espresso und alle anderen Spalten mit fehlenden Werten in der Gruppe Kaffee angezeigt:
Wenn Sie die Anfrage mit SET HIDENULLACRS=ON ausführen, werden die Spalten mit fehlenden Daten innerhalb jeder Region verborgen. Auf Seite 1 (Mittlerer Westen) sind die Spalten Capuccino und Espresso verborgen, während auf Seite 2 (Nordosten) nur die Spalte Espresso verborgen ist:
Die folgende Anfrage mit der GGSALES-Datenquelle hat zwei ACROSS-Felder (PRODUCT und CATEGORY). Das BY-Feld mit dem Seitenumbruch ist REGION. Der Befehl DEFINE erstellt ein Feld namens SHOWDOLLARS, das fehlende Werte für die Spalte Espresso in der ACROSS-Gruppe Kaffee hat und für die gesamte ACROSS-Gruppe Geschenke.
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso' OR CATEGORY EQ 'Gifts') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT WHERE REGION EQ 'Midwest' OR 'Northeast' ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=8, $ ENDSTYLE END
Wenn die Anfrage mit SET HIDENULLACRS=OFF ausgeführt wird, werden alle Spalten angezeigt:
Wenn die Anfrage mit SET HIDENULLACRS=ON ausgeführt wird, wird das Produkt Espresso und die gesamte Kategorie Geschenke in jeder Region verborgen. Auf Seite 1 (Mittlerer Westen) sind die Gruppe Geschenke und die Spalten Espresso und Capuccino verborgen, während auf Seite 2 (Nordosten) die Gruppe Geschenke und die Spalte Espresso verborgen sind:
Es werden, wenn eine gesamte ACROSS-Gruppe verborgen wird, auch die Summen verborgen, die für den assoziierten BY-Feldwert erzeugt werden. Wenn eine der Spalten für den ACROSS-Wert nicht fehlende Daten enthalten, wird die ACROSS-Gruppe mit den nicht fehlenden Spalten angezeigt.
Summenelemente bleiben mit ihren ACROSS-Gruppenspalten verbunden. Es wird, wenn eine ACROSS-Gruppe verborgen ist, der assoziierte Summenwert verborgen und nachfolgende Werte werden mit ihren ACROSS-Spalten ausgerichtet.
Summenzeilen, die an BY-Feldumbrüchen erzeugt werden, werden am Ende der letzten Seite für diesen BY-Feldwert angezeigt. Alle ACROSS-Gruppen, die innerhalb des BY-Wertes Nicht-Null-Daten enthalten (selbst wenn Sie auf manchen Seiten des BY-Wertes verborgen sind), werden in den Summenzeilen angezeigt, so dass assoziierte Summenwerte angezeigt werden können.
Gesamtsummen können ACROSS-Spalten enthalten, die auf manchen Seiten innerhalb eines BY-Feldwertes verborgen wurden. Deshalb werden sie immer auf eine neue Seite platziert und für alle ACROSS-Gruppen und -Spalten dargestellt, die auf wenigstens einer Seite im Report angezeigt wurden, unabhängig davon, was auf anderen Seiten verborgen wurde.
Summenzeilen, die für BY-Felder außerhalb des innersten BY-Seitenumbruchs definiert wurden, können auch ACROSS-Spalten enthalten, die für manche der internen BY-Felder verborgen wurden. Deshalb stellen diese Summenzeilen immer alle verfügbaren ACROSS-Spalten an und werden auf einer neuen Seite angezeigt.
Alle Summen, die in Spalten berechnet wurden (ACROSSTOTAL, ROWTOTAL), werden verborgen, wenn alle Spaltensummen fehlen.
In der folgenden Anfrage mit der GGSALES-Datenquelle ist REGION ein BY-Feld mit einem PAGE-BREAK und PRODUCT ist das ACROSS-Feld. Der DEFINE-Befehl erstellt ein Feld namens SHOWDOLLARS, das fehlende Werte für die Spalte Espresso in der ACROSS-Gruppe Kaffee hat. Spaltensummen werden am Ende des Reports erzeugt:
SET HIDENULLACRS=ON DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF (PRODUCT EQ 'Espresso') THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS PRODUCT ON REGION PAGE-BREAK HEADING "Page <TABPAGENO /<TABLASTPAGE " WHERE CATEGORY EQ 'Coffee'; ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE PCHOLD FORMAT HTML ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, HEADPANEL=ON, GRID=OFF, FONT='ARIAL', SIZE=9, $ ENDSTYLE END
Wenn die Anfrage ausgeführt wird, werden die Nullspalten innerhalb jedes REGION- Seitenumbruchs verborgen, und es wird eine separate Seite für die Spaltensummen erzeugt.
Nachfolgend sehen Sie die Seiten eins bis drei. Auf Seite 1 sind die Spalten Espresso und Capuccino verborgen. Auf den Seiten 2 und 3 ist die Spalte Espresso verborgen:
Nachfolgend sehen Sie die Seiten vier und fünf. Auf Seite 4 ist die Spalte Espresso verborgen: Seite 5 ist die Summenseite. Die Spalte Espresso ist verborgen, da sie auf jeder Detailseite verborgen ist. Capuccino ist jedoch nicht verborgen, da es auf manchen Seiten angezeigt wurde:
Das Styling der ursprünglichen Spalte wird beibehalten, unabhängig davon, ob die Spalte aufgrund des Verbergens von Nullspalten an derselben Stelle in der Reportausgabe bleibt. Im Besonderen:
Informationen darüber, wie Sie Spalten stylen, finden Sie unter Eine Reportkomponente in einem WebFOCUS StyleSheet identifizieren.
In der folgenden Anfrage mit der GGSALES-Datenquelle ist REGION ein BY-Feld mit einem PAGE-BREAK und PRODUCT ist das ACROSS-Feld. Der DEFINE-Befehl erstellt ein Feld namens SHOWDOLLARS, das fehlende Werte für die Spalte Capuccino in der Region Mittlerer Westen, die Spalte Thermosflasche in der Region Nordosten und die Spalte Scone in der Region Südosten sowie für die gesamte Region Westen hat. Es werden Spaltensummen, Zeilensummen und eine Zwischensumme für jede Region erzeugt.
Manchen Spalten werden Hintergrundfarben zugewiesen:
Die Anfrage folgt:
SET HIDENULLACRS=OFF DEFINE FILE GGSALES SHOWDOLLARS/I8M MISSING ON = IF ((PRODUCT EQ 'Capuccino' AND REGION EQ 'Midwest') OR (PRODUCT EQ 'Coffee Grinder' AND REGION EQ 'Northeast') OR (PRODUCT EQ 'Scone' AND REGION EQ 'Southeast') OR (REGION EQ 'West')) THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS AS '' BY REGION BY ST BY CITY ACROSS CATEGORY ACROSS PRODUCT ON REGION SUBTOTAL AS '*TOTAL' ON REGION PAGE-BREAK HEADING " Page <TABPAGENO "HEADING " Capuccino Missing in Coffee Group " WHEN REGION EQ 'Midwest'; HEADING " Coffee Grinder Missing in Gifts Group " WHEN REGION EQ 'Northeast'; HEADING " Scone Missing in Food Group " WHEN REGION EQ 'Southeast'; WHERE CATEGORY EQ 'Coffee' OR 'Food' ON TABLE SET PAGE-NUM OFF ON TABLE SET BYPANEL ON ON TABLE ROW-TOTAL AS 'TOTAL' ON TABLE COLUMN-TOTAL AS 'TOTAL' ON TABLE SET HTMLCSS ON ON TABLE PCHOLD FORMAT HTML ON TABLE SET STYLE * UNITS=IN,PAGESIZE='Letter',SQUEEZE=ON,ORIENTATION=PORTRAIT,$ TYPE=REPORT,HEADPANEL=ON,GRID=OFF,FONT='ARIAL',SIZE=6,$ TYPE=HEADING, style=bold, size=8,$ TYPE=DATA, COLUMN = C5, BACKCOLOR=WHEAT,$ TYPE=DATA, COLUMN = P5, BACKCOLOR=THISTLE,$ TYPE=DATA, COLUMN = N7, BACKCOLOR=MEDIUM GOLDENROD,$ TYPE=DATA, COLUMN = B3, BACKCOLOR=GOLDENROD,$ TYPE=DATA, COLUMN = SHOWDOLLARS(6), BACKCOLOR=silver,$ ENDSTYLE END
Wenn der Report mit SET HIDENULLACRS=OFF ausgeführt wird, werden alle Spalten angezeigt. Es wird eine Seite für die Region Westen erzeugt und es werden Zwischensummen berechnet, obwohl alle Werte fehlen:
Wenn der Report mit SET HIDENULLACRS=ON ausgeführt wird, wird Folgendes angezeigt:
Die Ausgabe ist:
Eine FML-Anfrage hat immer ein FOR-Feld, das die Reihenfolge bestimmter Zeilen definiert. Das FOR-Feld kann nicht verwendet werden, um das Verbergen von Null-ACROSS-Spalten auszulösen. Es kann jedoch die Anfrage auch ein BY-Feld mit einer PAGE-BREAK-Option haben und dies kann verwendet werden, um Null-ACROSS-Spalten zu verbergen.
Die folgende FML-Anfrage mit der GGSALES-Datenquelle hat ein BY-Feld namens REGION mit der Option PAGE-BREAK und einem ACROSS-Feld namens QTR. Das FOR-Feld ist PRODUCT. Der DEFINE-Befehl erstellt das QTR-Feld und enthält fehlende Werte für Q4 in der Region Mittlerer Westen, Q2 in der Region Nordosten und für alle Quartale in der Region Südosten.
SET HIDENULLACRS=ON DEFINE FILE GGSALES QTR/Q=DATE; SHOWDOLLARS/D12CM MISSING ON = IF REGION EQ 'Midwest' AND QTR EQ 'Q4' THEN MISSING ELSE IF REGION EQ 'Northeast' AND QTR EQ 'Q2' THEN MISSING ELSE IF REGION EQ 'Southeast' THEN MISSING ELSE DOLLARS; END TABLE FILE GGSALES SUM SHOWDOLLARS BY REGION ACROSS QTR FOR PRODUCT 'Biscotti' AS 'Biscotti' LABEL R1 OVER 'Capuccino' AS 'Capuccino' LABEL R2 OVER 'Latte' AS 'Latte' LABEL R3 OVER 'Mug' AS 'Mug' LABEL R4 OVER 'Coffee Pot' AS 'Coffee Pot' LABEL R5 OVER RECAP R6/D12.2=R1+R2+R3+R4+R5; AS '' ON REGION PAGE-BREAK 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=TITLE, STYLE=BOLD,$ TYPE=ACROSSTITLE, STYLE=BOLD,$ ENDSTYLE END
Wenn die Anfrage mit SET HIDENULLACRS=OFF ausgeführt wird, werden alle Spalten erzeugt und eine Seite für alle Regionen, einschließlich der Region Südosten, wo alle Werte fehlen:
Wenn die Anfrage mit SET HIDENULLACRS=ON ausgeführt wird, wird die Spalte Q4 für die Region Mittlerer Westen, Q2 für die Region Nordosten und die ganze Seite für die Region Südosten verborgen:
WebFOCUS |