Spalten sortieren

In diesem Abschnitt:

Vorgehensweise:

Referenz:

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.


Nach oben

x
Syntax: Spalten sortieren
ACROSS sortfield

Hierbei gilt:

sortfield

Ist der Name des Sortierfeldes.


Nach oben

x
Referenz: Verwendungshinweise für das Sortieren von Spalten


Beispiel: Spalten mit ACROSS sortieren

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.


Nach oben

x
Die Anzeige eines ACROSS-Titels für ein einzelnes Feld steuern

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.



x
Syntax: Die Anzeige eines ACROSS-Titels für ein einzelnes Feld steuern
SET ACRSVRBTITL = {OFF|ON|HIDEONE} 
ON TABLE SET ACRSVRBTITL {OFF|ON|HIDEONE}

Hierbei gilt:

OFF

Unterdrückt den Titel, wenn es nur ein Anzeigefeld gibt. OFF ist der Defaultwert.

ON

Zeigt den Titel an, wenn es nur ein Anzeigefeld gibt.

HIDEONE

Unterdrückt den Titel, wenn es nur ein Anzeigefeld gibt, aber die Anfrage enthält einen oder mehrere der folgenden Komponenten.

  • Felder in einer Kopf- oder Fußzeile.
  • Felder, deren Anzeige mit der Phrase NOPRINT unterdrückt wird.
  • Neu formatierte Felder (die normalerweise zweimal gezählt werden).
  • Ein COMPUTE-Befehl, der auf mehrere Felder verweist.


Beispiel: Einen einfachen ACROSS-Spaltentitel anzeigen oder unterdrücken

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     


Beispiel: Einen ACROSS-Titel mit HIDEONE verbergen

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    

Nach oben

x
ACROSS-Titel in der Reportausgabe positionieren

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.



x
Syntax: Die Position von ACROSS-Feldnamen steuern
SET ACROSSTITLE = {ABOVE|SIDE}

Hierbei gilt:

ABOVE

Zeigt ACROSS-Titel über ihren ACROSS-Werten an. ABOVE ist der Defaultwert.

SIDE

Zeigt ACROSS-Titel links neben ihren ACROSS-Werten an, über den BY-Spalten.



x
Referenz: Verwendungshinweise für SET ACROSSTITLE
  • Wenn der ACROSS-Wert umgebrochen wird, wird der ACROSS-Titel mit der obersten Zeile des umgebrochenen ACROSS-Wertes ausgerichtet.
  • Der ACROSS-Titel erstreckt sich über die Breite der BY-Spalten. Wenn der ACROSS-Titelwert größer ist als die Breite der BY-Spalte auf der aktuellen Seite, wird der Wert abgeschnitten. Es kann vorkommen, dass das erste Panel mehr BY-Felder hat als nachfolgende Panels, wenn SET BYPANEL auf einen Wert eingestellt ist, der kleiner ist als die Gesamtanzahl der BY-Felder.
  • Diese Einstellung erstellt keine neue Spalte im Report für die Platzierung des Titels.
    • Wenn die Anfrage keine BY-Felder hat, wird der ACROSS-Titel nicht verschoben.
    • Mit BYPANEL=OFF wird der ACROSS-Titel auf nachfolgenden Panels nicht angezeigt.
  • WRAP wird nicht unterstützt für ACROSSTITLE mit SET ACROSSTITLE=SIDE.


Beispiel: Den ACROSS-Titel auf dieselbe Zeile platzieren wie die ACROSS-Werte

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:



Beispiel: ACROSS-Titelabstand

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:



Beispiel: Hintergrundfarbe für ACROSS-Werte mit ACROSSTITLE=SIDE angeben

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.


Nach oben

x
Mehrere horizontale (ACROSS) Sortierfelder verwenden

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.



Beispiel: Mit mehreren horizontalen (ACROSS) Phrasen sortieren

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

Nach oben

x
PRINT mit ACROSS minimieren

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.



x
Syntax: Reportzeilen komprimieren
SET ACROSSPRT = {NORMAL|COMPRESS}
ON TABLE SET ACROSSPRT{NORMAL|COMPRESS}

Hierbei gilt:

NORMAL

Komprimiert Reportzeilen nicht. NORMAL ist der Defaultwert.

COMPRESS

Komprimiert Reportzeilen, indem Datenwerte nach oben verschoben werden, um fehlende Werte in einer Sortiergruppe zu ersetzen.



x
Referenz: Verwendungshinweise für SET ACROSSPRT


Beispiel: Reportausgabe mit SET ACROSSPRT komprimieren

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

Nach oben

x
Nullspalten in ACROSS-Gruppen verbergen

In diesem Abschnitt:

Vorgehensweise:

Referenz:

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.



x
Syntax: Null-ACROSS-Spalten verbergen
SET HIDENULLACRS = {ON|OFF}
ON TABLE SET HIDENULLACRS {ON|OFF}

Hierbei gilt:

ON

Verbirgt Spalten mit fehlenden Daten in ACROSS-Gruppen innerhalb eines von BY erzeugten Seitenumbruchs.

OFF

Verbirgt Spalten nicht. OFF ist der Defaultwert.



x
Referenz: Verwendungshinweise für das Verbergen von Nullspalten innerhalb von ACROSS-Gruppen
  • Das Ausrichten von Elementen in Kopfzeilen mit den assoziierten Datenspalten (HEADALIGN) wird für ACROSS-Reports nicht unterstützt.
  • Wenn ACROSS-Spalten verborgen werden, wirkt sich dies nicht auf Elemente aus, die in Kopfzeilenelementen platziert sind mit Platzmarkierungen oder expliziter Positionierung. Dies bedeutet, dass, nachdem ACROSS-Gruppenspalten verborgen wurden, Elemente und ACROSS-Spalten eventuell anders ausgerichtet werden als erwartet.


x
Referenz: Features, die für Null-ACROSS-Spalten verbergen nicht unterstützt werden
  • Active-Technologien.
  • EXL2K FORMULA.
  • EXL2K PIVOT.
  • OVER.
  • HIDENULLACRS wird nur mit Seitenumbrüchen unterstützt, die in ON byfieldname PAGE-BREAK-Phrasen oder BY fieldname PAGE-BREAK-Phrasen angegeben sind. Dies wird nicht unterstützt mit:
    • BY field ROWS value OVER.
    • FML FOR fields (FOR field value OVER PAGE-BREAK).


x
ACROSS-Gruppen und Spalten innerhalb von BY-Seitenumbrüchen verbergen

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.



Beispiel: Null-ACROSS-Gruppen verbergen

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:



Beispiel: Spalten innerhalb von ACROSS-Gruppen verbergen

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:



Beispiel: Nullspalten mit mehreren ACROSS-Feldern verbergen

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:



x
Summenzeilen erzeugen und Null-ACROSS-Spalten verbergen

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.



Beispiel: Spaltensummen erzeugen und Null-ACROSS-Spalten verbergen

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:



x
Spalten-Styling verwenden und Null-ACROSS-Spalten verbergen

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:

  • BORDERS und BACKCOLOR werden angepasst, um in das resultierende Panel oder Seitenlayout zu passen, nachdem die Spalten verborgen werden.
  • Das Styling, das für eine festgelegte Spalte angegeben wird, wird für diese Spalte beibehalten und verborgene Spalten wirken sich nicht darauf aus. Wenn beispielsweise für die dritte ACROSS-Spalte bedingtes Styling definiert wurde und die zweite ACROSS-Spalte verborgen wird, behält die Spalte die ursprünglich die dritte Spalte war, das Styling bei, obwohl sie zur zweiten Spalte in der Ausgabe wird.

Informationen darüber, wie Sie Spalten stylen, finden Sie unter Eine Reportkomponente in einem WebFOCUS StyleSheet identifizieren.



Beispiel: Spalten-Styling verwenden und Null-ACROSS-Spalten verbergen

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:



x
In einer FML-Anfrage Null-ACROSS-Spalten verbergen

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.



Beispiel: In einer FML-Anfrage Null-ACROSS-Spalten 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