Zeilen sortieren

In diesem Abschnitt:

Vorgehensweise:

Referenz:

Sie können Reportinformationen vertikal sortieren, indem Sie die BY-Phrase verwenden. Dies erzeugt in Ihrem Report Zeilen. Sie können bis zu 128 Sortierphrasen (BY-Phrasen und ACROSS-Phrases) pro Reportanfrage (127, wenn Sie PRINT oder LIST-Anzeigebefehle verwenden) aufnehmen.

Sortierfelder werden angezeigt, wenn sich ihr Wert ändert. Sie können jedoch jeden Sortierwert anzeigen, indem Sie den Parameter BYDISPLAY verwenden. Ein Beispiel finden Sie unter Alle vertikalen (BY) Sortierfeldwerte anzeigen.


Nach oben

x
Syntax: Nach Zeilen sortieren
BY {HIGHEST|LOWEST} [n] sortfield [AS 'text']

Hierbei gilt:

HIGHEST

Sortiert in absteigender Reihenfolge.

LOWEST

Sortiert in aufsteigender Reihenfolge. LOWEST ist der Defaultwert.

n

Gibt an, dass nur n Sortierfeldwerte im Report enthalten sind.

sortfield

Ist der Name des Sortierfeldes.

Text

Ist die Spaltenkopfzeile, die für die Sortierfeldspalte in der Reportausgabe verwendet werden soll.


Nach oben

x
Referenz: Verwendungshinweise für das Sortieren von Zeilen


Beispiel: Zeilen mit BY sortieren

Im Folgenden wird beschrieben, wie Sie alle Angestellten-IDs nach Abteilung anzeigen.

TABLE FILE EMPLOYEE
PRINT EMP_ID
BY DEPARTMENT
END

In der Ausgabe wird für jede EMP_ID in jeder Abteilung eine Zeile angezeigt:


Nach oben

x
Alle vertikalen (BY) Sortierfeldwerte anzeigen

Vorgehensweise:

In einer vertikalen Sortiergruppe wird der Sortierfeldwert nur auf der ersten Zeile für seine Sortiergruppe angezeigt, und auf der ersten Zeile einer Seite. Sie können jedoch mit dem SET BYDISPLAY-Befehl das entsprechende BY-Feld auf jeder Zeile eines Reports anzeigen, der in einem gestylten Ausgabeformat erzeugt wurde.

Obwohl SET BYDISPLAY für alle gestylten Ausgabeformate unterstützt wird, ist er besonders wichtig, um die Reportausgabe für Excel leichter verwendbar zu machen, da Excel Spalten nicht richtig sortieren kann, wenn in manchen Zeilen Leerwerte vorkommen.

Dieses Feature ermöglicht es Ihnen, das Sortierfeld nicht zweimal angeben zu müssen, einmal als ein Anzeigefeld und einmal für die Sortierung (mit der Option NOPRINT). Beispiel:

PRINT FIRST_NAME LAST_NAME
BY FIRST_NAME NOPRINT


x
Syntax: Alle vertikalen (BY) Sortierfeldwerte anzeigen
SET BYDISPLAY = {OFF|ON}

oder

ON TABLE SET BYDISPLAY {OFF|ON}

Hierbei gilt:

OFF

Zeigt einen BY-Feldwert nur auf der ersten Zeile der Reportausgabe für die Sortiergruppe an und auf der ersten Zeile einer Seite. OFF ist der Defaultwert.

ON

Zeigt den assoziierten BY-Feldwert auf jeder Zeile der Reportausgabe an, die in einem gestylten Format erzeugt wurde.



Beispiel: Alle vertikalen (BY) Sortierfeldwerte anzeigen

Im Folgenden wird beschrieben, wie Sie jede Instanz eines vertikalen (BY) Sortierfeldwerts in einem gestylten Report mit SET BYDISPLAY anzeigen können.

SET BYDISPLAY = ON
TABLE FILE CENTHR
PRINT LNAME
BY FNAME
WHERE FNAME EQ 'CAROLYN' OR 'DAVID'							  ON
TABLE PCHOLD FORMAT EXL2KEND

Die Ausgabe ist:


Nach oben

x
Mehrere vertikale (BY) Sortierfelder verwenden

Sie können Information in einem Report gliedern, indem Sie mehrere Sortierfelder verwenden. Wenn Sie mehrere Sortierfelder angeben, bestimmt die Reihenfolge der BY-Phrasen die Sortierreihenfolge. Die erste BY-Phrase stellt den Hauptsortierumbruch ein, die zweite BY-Phrase stellt den zweiten Sortierumbruch ein, etc. Jede nachfolgende Sortierung ist in die vorherige eingebettet.



Beispiel: Mit mehreren vertikalen (BY) Sortierfeldern sortieren

In der folgenden Anfrage werden mehrere vertikale (BY) Sortierfelder verwendet.

TABLE FILE EMPLOYEE
PRINT CURR_SAL
BY DEPARTMENT BY LAST_NAME
WHERE CURR_SAL GT 21500
END

Die Ausgabe ist:

DEPARTMENT  LAST_NAME               CURR_SAL
----------  ---------               --------
MIS         BLACKWOOD             $21,780.00
            CROSS                 $27,062.00
PRODUCTION  BANNING               $29,700.00
            IRVING                $26,862.00

Nach oben

x
Eine Zeile für Daten anzeigen, die durch eine Sortierphrase ausgeschlossen sind

Vorgehensweise:

Referenz:

In einer Sortierphrase können Sie die Anzahl der angezeigten Sortierwerte beschränken. Mit der PLUS OTHERS-Phrase können Sie alle anderen Werte in einer separaten Gruppe aggregieren und diese Gruppe als eine zusätzliche Reportzeile anzeigen.



x
Syntax: Daten anzeigen, die durch eine Sortierphrase ausgeschlossen sind
[RANKED] BY {HIGHEST|LOWEST|TOP|BOTTOM}  n							srtfield [AS 'text'] 
            [PLUS OTHERS AS 'othertext'] 
            [IN-GROUPS-OF m1 [TOP n2]] 
            [IN-RANGES-OF m3 [TOP n4]

Hierbei gilt:

LOWEST

Sortiert in aufsteigender Reihenfolge, angefangen mit dem niedrigsten Wert, und bis hin zum höchsten Wert (a-z, A-Z, 0-9 für alphanumerische Felder; 0-9 für numerische Felder). BOTTOM ist ein Synonym für LOWEST.

HIGHEST

Sortiert in absteigender Reihenfolge, angefangen mit dem höchsten Wert und bis hin zum niedrigsten Wert. TOP ist ein Synonym für HIGHEST.

n

Gibt an, dass nur n Sortierfeldwerte im Report enthalten sind.

srtfield

Ist der Name des Sortierfeldes.

Text

Ist der Text, der als Spaltenkopfzeile für die Sortierfeldwerte verwendet werden soll.

othertext

Ist der Text, der als Zeilentitel für die Gruppierung "Andere" verwendet werden soll. Diese AS-Phrase muss die AS-Phrase sein, die direkt auf die Phrase PLUS OTHERS folgt.

m1

Ist der inkrementelle Wert zwischen Sortierfeldgruppen.

n2

Ist eine optionale Zahl, die das höchste Gruppenlabel definiert, das in den Report aufgenommen werden soll.

m3

Ist eine ganze Zahl, die größer ist als Null, und die angibt, in welchem Bereich Sortierfeldwerte gruppiert werden.

n4

Ist eine optionale Zahl, die das höchste Bereichslabel definiert, das in den Report aufgenommen werden soll. Der Bereich wird erweitert, so dass er alle Datenwerte enthält, die größer als dieser Wert sind.



x
Referenz: Verwendungshinweise für PLUS OTHERS


Beispiel: Eine Zeile anzeigen, die Sortierfeldwerte darstellt, die von einer Sortierphrase ausgeschlossen werden

Die folgende Anfrage zeigt die zwei höchsten ED_HRS-Werte an und aggregiert die Werte, die nicht enthalten sind, in einer Zeile namens Andere:

TABLE FILE EMPLOYEE
PRINT CURR_SAL LAST_NAME
  BY HIGHEST 2 ED_HRS
  PLUS OTHERS AS 'Others'
END

Die Ausgabe ist:

ED_HRS         CURR_SAL  LAST_NAME
------         --------  ---------
 75.00       $21,780.00  BLACKWOOD
 50.00       $18,480.00  JONES
             $16,100.00  MCKNIGHT
Others      $165,924.00


Beispiel: Eine Zeile anzeigen, die Daten darstellt, die in keiner Sortierfeldgruppierung enthalten sind

Die folgende Anfrage sortiert nach höchste 2 ED_HRS und gruppiert die Sortierfeldwerte in Inkrementen von 25 ED_HRS. Werte, die unter das niedrigste Gruppenlabel fallen, werden in die Kategorie Andere aufgenommen. Alle Werte über dem höchsten Gruppenlabel werden in die höchste Gruppe aufgenommen:

TABLE FILE EMPLOYEE
PRINT CURR_SAL LAST_NAME
  BY HIGHEST 2 ED_HRS
  PLUS OTHERS AS 'Others'
IN-GROUPS-OF 25 TOP 50
END

Die Ausgabe ist:

ED_HRS         CURR_SAL  LAST_NAME
------         --------  ---------
 50.00       $18,480.00  JONES
             $21,780.00  BLACKWOOD
             $16,100.00  MCKNIGHT
 25.00       $11,000.00  STEVENS
             $13,200.00  SMITH
             $26,862.00  IRVING
              $9,000.00  GREENSPAN
             $27,062.00  CROSS
Others       $78,800.00

Wenn die Phrase BY HIGHEST geändert wird in BY LOWEST, werden alle Werte über der obersten Gruppierung (50 ED_HRS und höher) in die Kategorie Andere aufgenommen:

TABLE FILE EMPLOYEE
PRINT CURR_SAL LAST_NAME
  BY LOWEST 2 ED_HRS
  PLUS OTHERS AS 'Others'
IN-GROUPS-OF 25 TOP 50
END

Die Ausgabe ist:

ED_HRS         CURR_SAL  LAST_NAME
------         --------  ---------
   .00        $9,500.00  SMITH
             $29,700.00  BANNING
             $21,120.00  ROMANS
             $18,480.00  MCCOY
 25.00       $11,000.00  STEVENS
             $13,200.00  SMITH
             $26,862.00  IRVING
              $9,000.00  GREENSPAN
             $27,062.00  CROSS
Others       $56,360.00

WebFOCUS